问题是您正在使用警报方法。
我的意思是——很难从代码片段和警报中确定故障点在哪里。
但是,还有另一种方法可以使此类问题变得一目了然。这是我的建议;它是 JavaScript Step-Debugger。
在 Chrome 或 FireFox 中,可以单步执行您的代码行并检查每行的值以确定它是否符合您的预期。
在 Chrome 中进行 Step-Debugging 的说明: 1. 像这样添加 debugger 关键字,并注释掉您的警报:
//WORKS!
debugger;
var url = window.location;
//alert(url);
- This will instruct the debugger to pause runtime execution, so that we can see how each line executes.
在您的网页上使用 Chrome,右键单击屏幕并选择“检查元素”。
刷新页面,调用执行代码可能需要的任何事件。
现在你能做的真的很强大。点击越过按钮,将带您逐行。
我怀疑 url.split() 在某种程度上可能是错误的。
所以我所做的是查看 Location 的成员:host、hostname、href、origin、pathname...
我认为您需要根据需要拆分其中之一。
例如:
var url = window.location
var url_parts = url.href.split('/');
//这篇文章的url_parts是 //["http:", "", "stackoverflow.com", "questions", "10987267", "why-can-i-only-run-1-javascript-internal-function "]
希望有帮助。一切顺利!纳什