Zum Inhalt springen

JavaScript einbinden, onLoad Seite in einem rahmenlosen Fenster laden

Erstellt am 22. Mai 2006 · 2 Antworten · letzte Antwort am 22. Mai 2006

Tags: PHP, JavaScript & AJAX, Frage

Nick78 ·

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

steffenk ·

Du kannst mit der selben Methode JS einbinden.

Das onload-Event kannst Du auch in Deiner JS-Datei einfügen über

window.onload = funktion();
Nick78 ·

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