为什么我只能运行 1 个 JavaScript 内部函数
Why can I only run 1 JavaScript internal function
我正在尝试从复杂的URL中提取页面名称。这篇文章是我尝试这样做的方式。现在我能够获取页面的 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);
window.location
不是一个字符串,它是一个Location
对象,它没有方法split
。 不过,它确实有很多获取URL部分的方法,您可能想要查看这些方法,甚至可以执行您正在尝试执行的操作:
https://developer.mozilla.org/en/DOM/window.location
如果所有其他方法都失败了,您可以使用.toString().split
...
只有我一个人,还是每个人都完全忽略了‘
和’
不是有效的JavaScript引号的要点?
请改用'
或"
。
并访问location.href
而不仅仅是location
.那也会有所帮助。
尝试改用 window.location.href。 window.location 是一个对象而不是一个字符串。http://www.w3schools.com/jsref/obj_location.asp
我知道window.location
有一些属性叫做host
或hostname
:window.location.host
或window.location.hostname
。你应该尝试一下。
JavaScript 目前是单线程的,因此警报将阻止执行线程,直到命中 ok 然后它应该继续,htnl5 正在引入 Web worker 这有点酷,但有限......
回到你的问题,你可能想这样做。
window.location.href.split("/")
或
window.location.pathname.split("/")
取决于你想要实现的目标。
问题是您正在使用警报方法。
我的意思是 - 很难从代码片段和警报中确定故障点在哪里。
然而,还有另一种方法可以使这样的问题变得非常清晰;这是我的建议;它是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 没有方法拆分"
这是有道理的,因为返回的对象不是字符串,而是位置。
所以我所做的就是看看位置的成员: 主机, 主机名, href, 来源, 路径名...
我认为您需要根据需要拆分其中之一。
例如:
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"]
希望有帮助。万事如意!纳什
试试这个:
extracturl = function()
{
url1 = location.href;
url2 = url1.split('.');
url3 = url2[0].replace(/http:'/'//gi,'');
return url3;
}
它对我有用。它采用类似"http://example.com/"的内容并返回"示例"。(不带引号和句点。
- 正在保存JavaScript内部回调函数中的值
- 从内部函数javascript内部分配外部函数的对象
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- Javascript中的内部函数作用域
- JavaScript 如何定义内部函数
- JavaScript 在内部函数中保留一个 var
- 如何使用Javascript访问内部函数
- Javascript-从函数内部设置原型
- Javascript对象看不到内部函数
- 将此对象传递给JavaScript中的内部函数
- 为什么我只能运行 1 个 JavaScript 内部函数
- 如何从javascript内部函数访问对象属性,是可能的
- JavaScript内部函数打印前一个值
- 如何减少Javascript内部函数变量的作用域
- 从javascript内部函数返回值
- 茉莉测试javascript内部函数
- ecmascript 5 - JavaScript '内部函数
- 带有冒号的Javascript内部函数
- JavaScript内部函数和性能
- javascript内部函数的正则表达式