格式化javascript将由php回显

时间:2010-07-11 08:59:11

标签: php javascript

我正在尝试回应一些JavaScript,但是我无法正确地将格式化,我将我想要的javascript放入字符串中

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

然后像这样回复它

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

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:4)

使用event attributes被认为是不好的做法。 JavaScript should be unobtrusive。此外,我不明白为什么你必须将属性存储在PHP变量中,而不是直接将它们添加到span标记。最后但并非最不重要的是,为什么不在鼠标跨越时使用CSS :hover selector来改变背景颜色?那将是一个干净的方法。

答案 1 :(得分:1)

从引用代码中的着色中可以看出,您需要转义单引号。你最终会得到:

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

答案 2 :(得分:1)

您应该从输出字符串开始。你希望它看起来像这样:

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

现在,为了将PHP中的字符串放入变量中,您需要用单引号或双引号括起来。由于您的字符串包含单引号和双引号,因此它们中的任何一个都需要“转义”。

使用单引号:

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

使用双引号:

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

修改

最后注意事项:仔细阅读Gordon发布的内容。