这是我的代码:
function insert(){
var loc_array = document.location.href.split('/');
var linkElement = document.getElementById("waBackButton");
var linkElementLink = document.getElementById("waBackButtonlnk");
linkElement.innerHTML=loc_array[loc_array.length-2];
linkElementLink.href = loc_array[loc_array.length];
}
我希望
linkElementLink.href
能够捕获数组中除最后一项以外的所有内容。现在,它已损坏,并且它之前的那个项目倒数第二个。 最佳答案
优先于pathname
使用href
来仅检索链接的路径部分。否则,如果后缀为?query
或#fragment
,或者路径为/
(无父级),则会得到意外的结果。
linkElementLink.href= location.pathname.split('/').slice(0, -1).join('/');
(但是,那么您肯定可以说:)
linkElementLink.href= '.';
不要这样做:
linkElement.innerHTML=loc_array[loc_array.length-2];
从任意字符串设置HTML是危险的。如果您从中获取此文本的URL包含HTML中特殊的字符(例如
<
和&
),则用户可以注入(inject)标记。如果您可以在URL中获得<script>
(由于无效,您不应该这样做),但是无论如何,某些浏览器都可能允许您这样做),您将遇到跨站点脚本的安全漏洞。要设置元素的文本(而不是HTML),请使用
document.createTextNode('string')
并将其附加到元素上,或者使用分支代码使用innerText
(IE)或textContent
(其他现代浏览器)。关于javascript - JavaScript-获取数组中除最后一项外的所有项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3214409/