Archiv verlassen und diese Seite im Standarddesign anzeigen : warum funktioniert "window.open" nicht?
Willow
27.05.2005, 07:29:44
eine "function" kann ich in einem meiner scripts auf zwei unterschiedlichen wegen aufrufen -
einmal mit "<a href="javascript:openBetrieb(Betriebsnummer)">
ein andermal
<script type="text/javascript">
<!--
var btrecnr="<?php echo $row[recnr]; ?>";
openBetrieb(btrecnr);
//-->
</script>
(abhängig vom ergebnis einer suche in einer mysql-datenbank --> d.h. wenn auf grund dieser suche nur ein datensatz gefunden wird, soll ein eigenes fenster (mit den betriebsdaten) geöffnet werden;
wenn mehr als ein datensatz gefunden wir, wird das ergebnis aufgelistet und mittels "<a href="javascript:openBetrieb(Betriebsnummer)"> denn der gewünschte betrieb aufgerufen;
soweit so gut.
nur: im zweiten fall - also wenn nur ein datensatz gefunden wird, wird zwar die funktion aufgerufen (habe ich kontrolliert!) - es öffnet sich aber KEIN fenster!
warum???
Zeig doch mal ein bisschen mehr Code. Wie wird Funktion aufgerufen (bei einem und mehreren Ergebnissen), wie sieht die Funktion aus.
Das Problem ist vermutlich dieses: PopUps werden anscheinend erst dann geöffnet, wenn die Seite fertig geladen wurde. Mit einem onload im <body> sollte es also klappen.
Willow
27.05.2005, 07:56:52
die entsprechenden code-teile
im HEAD:
<script type="text/javascript">
<!--
function openBetrieb(btrecnr)
{
alert (btrecnr);
url="500.php?btrecnr="+btrecnr;
para="width=600,height=600,left=20,top=20,toolbar=no, dependent=yes, scrollbars=no,status=yes,resizable=no,location=no";
Betriebsdaten=window.open(url,"Betrieb",para);
Betriebsdaten.focus();
}
//-->
</script>
im <body>
(nach query mit einem ergebnis 1 datensatz):
habs jetzt nach deinem tip auf <body onLoad ... > geändert!) geht aber leider auch nicht!
if (mysql_num_rows($bt_result)==1)
{
$bt_row = mysql_fetch_array($bt_result);
echo '<body onLoad="openBetrieb('.$bt_row[recnr]).')">';
} // if num_rows()
Auch wenn das alles ziemlich i.O. aussieht: lässt Du Dir vom Browser auftretende JavaScript-Fehler anzeigen?
Willow
27.05.2005, 08:35:36
du meinst in der statuszeile?
da gibts keine reaktion - seltsamerweise.
d.h ess teht dort nur lapidar: "Fertig"
Kannst Du die komplette Seite (bei einem Datensatz) mal online stellen? Entweder hier oder da (http://nopaste.php-q.net/).
xabbuh
27.05.2005, 08:51:48
Wie sieht denn der resultierende Quelltext aus? Ist dort überhaupt ein onload imt body-Tag enthalten? Wenn nein, liegt das Problem an deinem PHP- und nicht dem JavaScript-Code.
Willow
27.05.2005, 09:43:16
also komplett der code:
include ("../lib/opendb.php");
include ("../lib/opendb_bib.php");
$qname='%'.$suchname.'%';
$bt_result = mysql_db_query("betriebsarchiv", "SELECT * FROM betriebe WHERE kurzname LIKE'$qname' ORDER BY kurzname");
<head>
<title></title>
<meta name="author" content="Gerhard Mayer">
<link rel="stylesheet" href="../lib/betriebe_partner.css" type="text/css">
<script type="text/javascript">
<!--
function openBetrieb(btrecnr)
{
url="500.php?btrecnr="+btrecnr;
para="width=600,height=600,left=20,top=20,toolbar=no, dependent=yes, scrollbars=no,status=yes,resizable=no,location=no";
Betriebsdaten=window.open(url,"Betrieb",para);
Betriebsdaten.focus();
}
//-->
</script>
</head>
if (mysql_num_rows($bt_result)>1)
{
// auflistung (mehrere datensätze gefunden
echo '<body><br>';
echo 'Folgende Einträge wurden unter dem Suchbegriff <span style="color:#DF0000">... '.strtolower($suchname).' ...</span> gefunden:<br><i>(Klicken Sie auf den Namen, um das Betriebsdatenblatt aufzurufen)</i><br><br>';
echo '<table border="0" span style="font-size:8 pt"><colgroup><col width="150" valign="top"><col width="40" valign="top"><col width="120" valign="top"><col width="150" valign="top"><col width="150" valign="top"><col width="80" valign="top"></colgroup>';
echo '<tr><td><i>Betrieb</i></td><td colspan="2"><i>Ort</i></td><td><i>Telefon</i></td><td><i>eMail</i></td></tr>';
echo '<tr><td colspan="5"><hr></td></tr>';
while($bt_row = mysql_fetch_array($bt_result))
{
$kg_result = mysql_db_query("bibliothek", "SELECT * FROM katastralgemeinden WHERE recnr='$bt_row[ort]'");
$kg_row = mysql_fetch_array($kg_result);
$telefon='0'.$kg_row[vorwahl].'/'.$bt_row[telefon];
if ($bt_row[mobil] !="") $telefon.=' oder '.$bt_row[netz].'/'.$bt_row[mobil];
echo '<tr><td><a href="javascript:openBetrieb('.$bt_row[recnr].')">'.$bt_row[kurzname].'</a></td><td>'.$kg_row[plz].'</td><td>'.$kg_row[ort].'</td><td>'.$telefon.'</td><td><a href="mailto:'.$bt_row[email].'">'.$bt_row[email].'</a></td></tr>';
} // while
} // if num_rows()
else
{
if (mysql_num_rows($bt_result)==1)
{
// betriebsdatenblatt
$bt_row = mysql_fetch_array($bt_result);
echo '<body onLoad="openBetrieb('.$bt_row[recnr].')">';
} // if num_rows()
else
{
echo '<body><br><i><b>Es wurde kein Eintrag unter der Betriebsbezeichnung <span style="color:#DF0000">'.$suchname.'</span> gefunden.</b></i>';
}
}
$db_close=@MYSQL_CLOSE($archiv);
$db_close=@MYSQL_CLOSE($db);
</body>
</html>
1) Bitte nutze [php ]/[/php ], [code ]/[/code ] oder [html ]/[/html ] !
2) Wir wollen den Quelltext aus dem Browser
Willow
27.05.2005, 11:10:43
aus dem browser:
<head>
<title></title>
<meta name="author" content="Gerhard Mayer">
<link rel="stylesheet" href="../lib/betriebe_partner.css" type="text/css">
<script language="JavaScript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
//-->
</script>
<script type="text/javascript">
<!--
function openBetrieb(btrecnr)
{
alert (btrecnr);
url="500.php?btrecnr="+btrecnr;
para="width=600,height=600,left=20,top=20,toolbar=no, dependent=yes, scrollbars=no,status=yes,resizable=no,location=no";
Betriebsdaten=window.open(url,"Betrieb",para);
Betriebsdaten.focus();
}
//-->
</script>
</head>
<body onLoad="openBetrieb(171)"></body>
</html>
<script language="JavaScript">
<!--
var SymRealOnLoad;
var SymRealOnUnload;
function SymOnUnload()
{
window.open = SymWinOpen;
if(SymRealOnUnload != null)
SymRealOnUnload();
}
function SymOnLoad()
{
if(SymRealOnLoad != null)
SymRealOnLoad();
window.open = SymRealWinOpen;
SymRealOnUnload = window.onunload;
window.onunload = SymOnUnload;
}
SymRealOnLoad = window.onload;
window.onload = SymOnLoad;
//-->
</script>
1) Bitte nutze [php ]/[/php ], [code ]/[/code ] oder [html ]/[/html ] !
--> http://www.selfphp.de/forum/misc.php?do=bbcode#html
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.