开发者

Failing JavaScript onMouseOver event

I want to show onmouseover alert in PHP files but it fails. Please help me.

<?php
    $a = '<a href=# onMouseover=alert(';
    $a .= 'Für die Mitnahme von Sportgepäck &#40;Scuba/Diving/Golf Equipment&#41; bis'.
' 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In '.
'Schalter die normalen Übergewichtsraten pro KG berechnet werden &#40;'.
'unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks '.
'beinhaltet nicht das Sportgepäck&#41';
    $a .= ')>LINK DESCRIPTION</a>开发者_C百科;';
    echo $a;
?>


There is no need for PHP here. Just write HTML:

<a href="#" onmouseover="alert('looong string...')">LINK DESCRIPTION</a>

It is much easier to read and to debug.

But an explanation for why your code does not work: You are messing up with quotes.


This is the HTML you actually want :

<a href="#" onmouseover="alert('my text');">LINK DESCRIPTION</a>

Note the quotes around each attribute value and the single quote around the text of the alert. To obtain this in PHP, you can do it by escaping the quotes :

$a='<a href="#" onmouseover="alert(\'';
$a.='Für die [...] Sportgepäck&#41';
$a.= '\')">LINK DESCRIPTION</a>';


Escape the string in the alert, like this:

<?php

    $a = '<a href=# onMouseover=alert(';
    $a .= '\'Für die Mitnahme von Sportgepäck &#40;Scuba/Diving/Golf Equipment&#41; bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden &#40;unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck&#41\'';
    $a .= ')>LINK DESCRIPTION</a>';
    echo $a;
?>


<?php
    $a = '<a href=# onmouseover=alert("';
    $a .= 'Für die Mitnahme von Sportgepäck &#40;Scuba/Diving/Golf Equipment&#41; bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden &#40;unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck&#41';
    $a .= '")>LINK DESCRIPTION</a>';
    echo $a;
?>


Instead of printing HTML code in PHP, escape PHP block:

<?php
// some PHP code and exit PHP block
?>

<a href="#" onmouseover="alert('Für die Mitnahme.....')">LINK DESCRIPTION</a>

<?php
// enter PHP block again
?>

However the problem was in missing apostrophes in alert function.

Was:

alert(some text)

should be:

alert('some text')

If you miss apostrophes, JavaScript treats your text as a variables.


<?php $a='Für die Mitnahme von Sportgepäck &#40;Scuba/Diving/Golf Equipment&#41; bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden &#40;unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck&#41';
echo '<a href=\"#\" onmouseover=\"alert(\"'.$a.'\")\">LINK DESCRIPTION</a>';

Just simple like that ...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜