我在div中有一些javascript,可以让它从iframe移动到主页面。它工作正常,但当我使用&像这样:
function JS_onMouseOverBG(e, i_bg) {
if( (block == 0)&&(i_bg != selected) ) {
e.style.cursor = 'pointer' ;
} else {
e.style.cursor = '' ;
}
}
然后&
变为&
,我有这个firefox错误:
Erreur : missing ) after condition
Fichier Source : http://192.168.0.20/lb/?p=467&w=prefs_bggen
Ligne : 905, Colonne : 22
Code Source :
if( (block == 0)&&(i_bg != selected) ) {
我尝试使用\u0026
的unicode &
,但它不起作用。我有一个非法的错误。
在这种情况下如何使用&
?
编辑: 如果有人找到同样的问题,我找到了解决方案:
function JS_decode(str) {
var div = document.createElement('div');
div.innerHTML = str ;
var decoded = div.firstChild.nodeValue;
return decoded ;
}
我将此函数用于包含Javascript代码的此DIV DIV_cover_js:
var eleJS = document.createElement("script") ;
eleJS.type = 'text/javascript' ;
eleJS.text = get('DIV_cover_js').innerHTML ;
eleJS.text = JS_decode(WP.eleJS.text) ;
eval(eleJS.text);
答案 0 :(得分:2)
(引自OP的评论):
WP.eleJS.text = get('DIV_prefs_js').innerHTML ; eval(WP.eleJS.text);
如果原始HTML包含&&
,那么这是error,浏览器正在对其进行更正。
然后,您将DOM序列化为HTML并尝试将某些HTML视为JavaScript。
如果你真的想这样做,那么你应该提取一个textNode
并使用它的data
代替innerHTML
,但这种方法很丑陋,速度慢且难以调试。您应该首先通过<script>
元素加载正确的JS函数。
答案 1 :(得分:1)
JavaScript不会进入<div>
。它进入<script>
。