我該如何修復javascript中的鏈接。在javascript中添加引用生成的鏈接
<a href="javascript:clientGalleryLink(Business)">Link</a>
其失蹤圍繞 '業務'
的Javascript單引號:
html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";
我該如何修復javascript中的鏈接。在javascript中添加引用生成的鏈接
<a href="javascript:clientGalleryLink(Business)">Link</a>
其失蹤圍繞 '業務'
的Javascript單引號:
html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";
使用\
逃脫引號
html += "<option value='javascript:clientGalleryLink(\"" + titleArray[x] + "\")'>" + titleArray[x] + "</option>";
加斜槓:
\"" + titleArray[x] + "\"
試試這個逃跑的屬性引號,從而給你像你在你的例子中顯示的單引號。
html += "<option value=\"javascript:clientGalleryLink('" + titleArray[x] + "')\">" + titleArray[x] + "</option>";
<a href='javascript:clientGalleryLink("Business")'>Link</a>
html += "<option value='javascript:clientGalleryLink(\"" + titleArray[x] + "\")'>" + titleArray[x] + "</option>";
能否請您試試這個。
謝謝。
這樣逃跑的問題是爲什麼最好避免在字符串中動態創建JavaScript-in-HTML。也不應該使用javascript:
僞URL方案。
相反,考慮一個「不顯眼的腳本」的方法:移動數據進行嵌入的JS串並進入正常屬性,如class
或,如果鏈路對應於頁面上的特定元件,所述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;
};
}
}
第二個例子:
html += "<option value='javascript:clientGalleryLink(" + titleArray[x] + ")'>" + titleArray[x] + "</option>";
僅僅是一個混亂。除了缺少引用titleArray值的\'
,以及titleArray上缺少HTML轉義或JS字符串字面轉義(因此如果標題中有'"<&
個字符,則會出現問題)。
當您選擇該選項時,您是否希望執行腳本,因爲您已將它放入value
?它不會。
更好地使用DOM對象,而不是試圖在HTML內部的JavaScript內部插入JavaScript。例如,如果你正在尋找一個選擇框每一個所選擇的選項改變時調用clientGalleryLink
:
<div id="PlaceWhereYouWantToPutTheSelectBox"></div>
<script type="text/javascript">
var s= document.createElement('select');
for (var i= 0; i<titleArray.length; i++) {
s.options[i]= new Option(titleArray[i], titleArray[i]);
}
s.onchange= function() {
clientGalleryLink(this.options[this.selectedIndex].value);
};
document.getElementById('PlaceWhereYouWantToPutTheSelectBox').appendChild(s);
</script>
沒有醜陋的逃避必要的,沒有跨站點腳本安全漏洞。
你的兩個片段不匹配。一個是「」,另一個是「