hallo,
ich würde gern eine javascript funktion einbinden! in meinem fe-plugin kann man in einer selectorbox einen datensatz auswählen, in einer zweiten selector box die gewünschte darstellungsauflösung.
anhand dieser auswahl wird über
$GLOBALS['TSFE']->additionalHeaderData[...]...
die passende css-datei geladen (danke nochmal an steffenk!!!). dasselbe soll nun auch mit einer javascript-datei funktionieren. ich möchte die über die selectorbox aufgerufenen seiten in einem fenster ohne rahmen, scrollbalken, etc. (also, wie ein popup-window) öffnen. dabei ist die fenstergröße abhängig von der gewünschten auflösung. ich habe hierbei ebenfalls mit
$GLOBALS['TSFE']->additionalHeaderData[...]...
und
$GLOBALS['TSFE']->JSeventFuncCalls['onload'][$this->pObj->prefixId] = 'MeinJSFunktion();';
herumgetüftelt. kam bis jetzt aber leider noch zu keinem resultat. stand jmd von euch schonmal vor einem ähnlichen problem?
danke,
nick
Du kannst mit der selben Methode JS einbinden.
Das onload-Event kannst Du auch in Deiner JS-Datei einfügen über
window.onload = funktion();
danke,
aber nur kurz zum verständnis.
meine js-datei "window1024.js:
<script language="JavaScript" type="text/javascript">
function winopen() {
// Die Größe des Fensters
var popUpSizeX=1024;
var popUpSizeY=768;
// Die Position des Fensters
var popUpLocationX=0;
var popUpLocationY=0;
// URL zum Fenster
var popUpURL="http://localhost/typo3_4/projekt2/index.php?id=22";
splashWin = window.open("","x","fullscreen=1,toolbar=0,location=0,
directories=0,status=0,menubar=0,scrollbars=no,resizable=0");
splashWin.blur();
window.focus();
splashWin.resizeTo(popUpSizeX,popUpSizeY);
splashWin.moveTo(popUpLocationX,popUpLocationY);
splashWin.location=popUpURL;
splashWin.focus();
}
window.onload = winopen();
</script>
wurde ein datensatz und ne auflösung gewählt, übergebe ich diese beiden werte wie folgt einer weiteren funktion "preview":
...
if(isset($this->piVars['submit-button'])){
return $this->pi_wrapInBaseClass($this->preview($this->piVars['datensatzauswahl'],$this->piVars['aufloesung']));
}
...
function preview($uid, $resolution) {
if($resolution == "1024x768"){
// css-datei auswaehlen
$GLOBALS['TSFE']->additionalHeaderData['special_css'] =
'<link rel="stylesheet" href="fileadmin/styles/styles1024.css" type="text/css" media="screen" />';
//js-datei auswaehlen
$GLOBALS['TSFE']->additionalHeaderData['win1024_js'] =
'<script type="text/javascript" src="fileadmin/js/window1024.js"></script>';
//js-datei aufrufen
$GLOBALS['TSFE']->JSeventFuncCalls['onload'][$this->pObj->prefixId] = 'winopen();';}
...
die richtige css-datei wird geladen. das script-tag wird auch im quelltext eingebunden, nur erscheint das fenster nicht so, wie in "window1024.js" angegeben. habe ich irgendwo einen denkfehler? wenn ich "window.onload = winopen();" in meinem js-file unter der funktion "winopen()" platziere, ist der aufruf in der extension mit "$GLOBALS['TSFE']->JSeventFuncCalls['onload'][$this->pObj->prefixId] = 'winopen();';" ja irgendwie doppeltgemoppelt...
nick