我试图在Javascript函数中将一些HTML代码作为String传递,但是即使将引号将其定为字符串,它仍会作为HTML代码而不是作为参数执行。
导航器不以参数形式而是以HTML代码形式读取字符串。
这是img标签第4行中的函数cancelVolet():
function editVoletVisual(r){
var x = new String(r.parentNode.parentNode.innerHTML);
var y = x.replace('"','\"');
r.parentNode.innerHTML="<input name=\"edtVolet\" type=\"text\" id=\"edtVolet\"><img src=\"ressources/images/dlt.png\" align=\"top\" id=\"canceler\" onclick=\"cancelVolet(\""+y+"\")\">";
}
这是问题所在:单击“编辑”按钮(带有纸和笔的图像)时
黄色突出显示的部分应该是参数,而不是要显示的HTML代码!
我该如何解决这个问题,请帮忙?
解决方案之一是使用encodeURI
功能
r.parentNode.innerHTML= "<input ... onclick=\"cancelVolet(\""+encodeURI(y)+"\")\">"
并在cancelVolet
函数内部,使用decodeURI
来获取应有的参数
function cancelVolet (param) {
param = decodeURI (param);
/* Your code here */
}
escape
并且unescape
可以做相同的工作,但是它们已被弃用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句