在javascript生成的链接中添加引用

时间:2009-10-30 16:47:54

标签: javascript

如何在javascript中修复此链接。

<a href="javascript:clientGalleryLink(Business)">Link</a>

它缺少围绕'商业'的单引号

使用Javascript:

html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";

5 个答案:

答案 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

没有必要的丑陋逃脱,没有跨站点脚本的安全漏洞。