我正在尝试从复杂的网址中提取网页名称。 This post是我尝试这样做的方式。现在我能够获取页面的URL但是一旦我尝试用它做任何事情就失败了。我在SharePoint页面中使用它。
//WORKS!
var url = window.location;
alert(url);
//ALERTS NOTHING
//PREVENTS ALL JAVASCRIPT AFTER THIS FROM RUNNING AS WELL
var url = window.location;
var url_parts = url.split(‘/’);
var main_url = url_parts[0];
alert(main_url);
答案 0 :(得分:3)
window.location
不是字符串,它是Location
对象,没有方法split
。但是,它确实有很多方法可以获取URL的部分内容,您可能希望看到它甚至可以执行您尝试执行的操作:
https://developer.mozilla.org/en/DOM/window.location
如果其他所有方法都失败了,您可以使用.toString().split
...
答案 1 :(得分:1)
只是我或者每个人都完全忽略了‘
和’
不是有效的JavaScript报价的观点吗?
改为使用'
或"
。
访问location.href
而非location
。这也有帮助。
答案 2 :(得分:0)
尝试使用window.location.href。 window.location是一个对象而不是一个字符串。 http://www.w3schools.com/jsref/obj_location.asp
答案 3 :(得分:0)
我知道名为window.location
或host
的{{1}}属性:hostname
或window.location.host
。你应该尝试一下。
答案 4 :(得分:0)
JavaScript目前是单线程的,因此警报将阻止执行线程,直到确定被击中然后它应该继续,htnl5引入的Web工作人员很酷,但有限......
回到你的问题,你可能想要这样做。
window.location.href.split("/")
或
window.location.pathname.split("/")
取决于你想要达到的目标。
答案 5 :(得分:0)
问题是您正在使用警报方法。
我的意思是 - 很难从代码片段和警报中确定失败点的位置。
然而,还有另一种方法可以解决这样的问题;这是我的建议;它是JavaScript Step-Debugger。
在Chrome或FireFox中,可以逐步执行代码行并检查每行的值,以确定它是否符合您的预期。
Chrome中的步骤调试说明: 1.像这样添加调试器关键字,并注释掉你的警报:
//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()在某种程度上可能是错误的。
我看了看,我看到的是一个错误: “url没有方法拆分”
这是有道理的,因为返回的对象不是String而是Location。
所以我所做的就是看一下Location的成员: 主机,主机名,href,来源,路径名......
我认为您需要根据自己的需要拆分其中一个。
例如:
var url = window.location
var url_parts = url.href.split('/');
这篇文章的希望有所帮助。 祝一切顺利! 纳什
答案 6 :(得分:-1)
试试这个:
extracturl = function()
{
url1 = location.href;
url2 = url1.split('.');
url3 = url2[0].replace(/http:\/\//gi,'');
return url3;
}
它对我有用。 它需要“http://example.com/”之类的东西并返回“示例”。 (没有引号和句号。)