Seite 1 von 1

JS Action automatisch ausführen

Verfasst: 01.12.2007 10:45
von phillip
Hallo
Ich würde gerne das PopUp des phpbb ein wenig modifizieren.

Dabei hab ich folgendes Problem:
wenn eine neue Private Nachricht vorhanden ist, soll eine action audgeführt werden.

Code: Alles auswählen

 <!-- BEGIN switch_enable_pm_popup -->

    <script type="text/javascript">

    <!--

	  if ( {PRIVATE_MESSAGE_NEW_FLAG} )

	  {

		fireMyPopup();

	  }

    //-->

    </script>

    <!-- END switch_enable_pm_popup -->
Leider klappt dies nicht ganz.

Toll wäre es, wenn wir onLoad weglassen könnten ;-)

Verfasst: 01.12.2007 10:53
von PhilippK
Was soll dir den die if-Bedingung bringen? Wenn ein Popup erscheinen soll, gibtst du den Code aus, ansonsten nicht :-?

Gruß, Philipp

Verfasst: 01.12.2007 11:21
von phillip
ja stimmt, wäre vielleicht besser.
Ich versuchs einmal ;-)

aber wie müsste das Ganze dann aussehen? ich doch 0 ahnung von JS xD

Verfasst: 01.12.2007 16:34
von gn#36
Vielleicht stellst du mal genauer da was du machen willst?

Das aussehen des Popups verändern?
Etwas anderes am Popup verändern?

Ich stelle das Popup beispielsweise in einem Iframe dar der seine Position anhand des aufgerufenen Links auf der Seite darstellt weil mich Popups nerven.

Verfasst: 01.12.2007 20:10
von phillip
es ist so, ich will kein popup in dem sinn, sondern dieses hier: http://dhtmlpopups.webarticles.org/movable.php

Verfasst: 01.12.2007 20:24
von UGC
ja toll, bei mir geht das popup net mehr zu :P
WEnn ich einmal au fden titel geklickt hab, is es fest an der maus...

Nimm doch einfach ein normales Popup, wie es üblich ist ;)

Verfasst: 01.12.2007 20:27
von phillip
ja ich habs auch geändert. ich habs nicht 1 zu 1 übernommen xD
ja ist ja egal, zurück zu meinem Problem ;-) Wie bring ich das "pop up" automatisch auf, wenn ein wert grösser als 1 ist?

Verfasst: 01.12.2007 20:29
von gn#36
Ah ok, das ist doch mal eine Aussage.
Das musst du dafür aber einigermaßen grundlegend Umbauen, evtl. hilft dir aber dieses Code Segment, das ich verwende:

In der overall_header.tpl

Code: Alles auswählen

<!-- BEGIN switch_enable_pm_popup -->
<script language="Javascript" type="text/javascript">
<!--
function description_delete(id)
{
	try
	{
	if(id != undefined && document.getElementById(id))
		{
			document.getElementById(id).innerHTML = ' ';
		}
	info_var=0;
	}
	catch(b)
	{
		//alert("ERROR: (description_delete):"+b);
	}
}
function findeOL(obj,richtung)
{
	var objektLayerPos = 0;
	var dir = richtung ? 'offsetLeft' : 'offsetTop';
	if(obj.offsetParent)
	{
		while(obj.offsetParent)
		{
			//Rekursion: Vorarbeiten bis zum obersten Objekt
			//Abstand vom Objekt zum naechst hoeheren hinzuzaehlen
			objektLayerPos += obj[dir];
			obj=obj.offsetParent;
		}
		//Position des dokuments noch hinzu
		objektLayerPos += document.body[dir];
	}
	else if(obj.x)
		{
			//Falls direkter Zugriff auf Koordinaten moeglich ist
			objektLayerPos = dir ? obj.x : obj.y;
		}
	return objektLayerPos;
}
//-->
</script>
<!-- END switch_enable_pm_popup -->
in der Overall Footer:

Code: Alles auswählen

<!-- BEGIN switch_enable_pm_popup -->
<script language="Javascript" type="text/javascript">
<!--
	if ( {PRIVATE_MESSAGE_NEW_FLAG} )
	{
		try
		{
			anchor_pos = window.location.hash;
			if(anchor_pos)
			{
				anchor_pos = anchor_pos.substr(1);
				x = findeOL(document.getElementsByName(anchor_pos)[0],0);
				
				document.write('<div id="hiddenDiv" style="position:absolute;z-index:7"><div style="top:' + x + 'px;left:70px;position:absolute;z-index:5;height:auto;"><iframe id="hiddenFrame" src="{U_PRIVATEMSGS_POPUP}" height="250"></iframe></div></div>');
			}
			else
			{
				document.write('<div id="hiddenDiv"><div style="top:50px;left:70px;position:absolute;height:auto;"><iframe id="hiddenFrame" src="{U_PRIVATEMSGS_POPUP}" height="250"></iframe></div></div>');
			}
		}
		catch(b)
		{
			document.write('<div id="hiddenDiv"><div style="top:50px;left:70px;position:absolute;height:auto;"><iframe id="hiddenFrame" src="{U_PRIVATEMSGS_POPUP}" height="250"></iframe></div></div>');
		}
	}
	

//-->
</script>
<!-- END switch_enable_pm_popup -->
Im Popup dann noch das hier:

Code: Alles auswählen

<script language="javascript" type="text/javascript">
<!--
function jump_to_inbox()
{
	opener.document.location.href = "{U_PRIVATEMSGS}";
	window.close();
}
function description_delete(id)
{
	try
	{
	
	if(id != undefined && top.document.getElementById(id))
		{
			top.document.getElementById(id).innerHTML = ' ';
			
		}
	
	info_var=0;
	}
	catch(b)
	{
		alert("ERROR: (description_delete):"+b);
	}
}
//-->
</script>
Dann musst du noch ein paar Links anpassen und du hast das ganze mit einem IFrame, das Vorgehen bei deiner Geschichte wird etwa ähnlich gehen.

Verfasst: 01.12.2007 20:31
von phillip
aber da hab ich keinen delay drin :-(
der gefällt mir so! delay beim öffnen, und delay beim schliessen... darum will ichs ja :D

Verfasst: 01.12.2007 20:34
von gn#36
Das sollte nur ein Anreiz für eine Möglichkeit sein wie du es machen kannst. Machen musst du es selbst und mit der Code Grundlage die ich dir gepostet habe dürfte eine Anpassung nicht sonderlich schwer fallen denke ich.