如何在javascript中修复此链接。
<a href="javascript:clientGalleryLink(Business)">Link</a>
它缺少围绕'商业'的单引号
使用Javascript:
html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";
答案 0 :(得分:2)
使用\
来转义引号
html += "<option value='javascript:clientGalleryLink(\"" + titleArray[x] + "\")'>" + titleArray[x] + "</option>";
答案 1 :(得分:1)
<a href='javascript:clientGalleryLink("Business")'>Link</a>
html += "<option value='javascript:clientGalleryLink(\"" + titleArray[x] + "\")'>" + titleArray[x] + "</option>";
请你试试这个。
感谢。
答案 2 :(得分:0)
添加斜杠:
\"" + titleArray[x] + "\"
答案 3 :(得分:0)
尝试使用此选项来转义属性引号,从而为您提供单个内部引号,就像您在示例中所示。
html += "<option value=\"javascript:clientGalleryLink('" + titleArray[x] + "')\">" + titleArray[x] + "</option>";
答案 4 :(得分:0)
避免这样的问题是为什么最好避免在字符串中动态创建HTML-in-HTML。还应该永远不要使用javascript:
伪URL方案。
相反,请考虑一种“不引人注目的脚本”方法:将数据从嵌入的JS字符串移出到普通属性,例如class
,或者,如果链接对应于页面上的特定元素,则{ {1}}本身:
href
第二个例子:
<a class="gallerylink" href="#Business">Link</a>
for (var i= document.links.length; i-->0;) {
if (document.links[i].className==='gallerylink') {
document.links[i].onclick= function() {
clientGalleryLink(this.hash.substring(1));
return false;
};
}
}
只是一团糟。除了titleArray值缺少html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";
引用,以及titleArrays上缺少HTML转义或JS字符串文字转义(如果标题中有\'
个字符,那么'有问题)。
您是否期望在选择该选项时执行该脚本只是因为您已将其放入'"<&
?它不会。
最好使用DOM对象,而不是试图在HTML里面的JavaScript里面插入JavaScript。例如,如果您要查找每次更改所选选项时调用value
的选择框:
clientGalleryLink
没有必要的丑陋逃脱,没有跨站点脚本的安全漏洞。