开发者

formatting javascript to be echoed out by php

I am trying to 开发者_StackOverflow社区echo out some JavaScript, but I can't get the formatting right I start off by putting the javascript I want to out into a string

$javascript = 'onmouseover="this.style.backgroundColor='blue'" onmouseout="this.style.backgroundColor='white'"';

and then echo it out like this

 $hint="<span $javascript>".$artistname->item(0)->childNodes->item(0)->nodeValue."</span>";

any help would be much appreciated


Using the event attributes is considered bad practise. JavaScript should be unobtrusive. Also, I do not see why you would have to store the attributes in a PHP variable instead of simply adding them to the span tag directly. And last but not least, why dont you just use the CSS :hover selector to change the background color when the mouse is over the span? That would be a clean approach.


As you can tell from the coloring in the quoted code, you need to escape your single quotes. You will end up with:

$javascript = 'onmouseover="this.style.backgroundColor=\'blue\'" onmouseout="this.style.backgroundColor=\'white\'"';


You should start with the output string. You want it to look like this:

onmouseover="this.style.backgroundColor='blue'"
onmouseout="this.style.backgroundColor='white'"

Now, in order to put that string in PHP into a variable, you need to surround it with either single or double quotes. Since your string contains both single and double quotes, either of them needs to be "escaped".

Using single quotes:

$javascript = 'onmouseover="this.style.backgroundColor=\'blue\'"
               onmouseout="this.style.backgroundColor=\'white\'"';

Using double quotes:

$javascript = "onmouseover=\"this.style.backgroundColor='blue'\"
               onmouseout=\"this.style.backgroundColor='white'\"";

Edit:

Final note: read carefully what Gordon has posted.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜