我需要检查位置是否与某些文字类似。所以我的代码如下:
//are we already on the same form
var loc = window.top.window.location;
if(loc)
window.alert("loc=" + loc);
if(loc && loc.search(form, "i") != -1)
{
}
window.top.window看起来有点奇怪 - 它被使用是因为窗口可能不是最顶层的,我需要获得最顶层的实例。
我确实得到了一个loc实例 - 所以它不是null。但搜索有效吗?
但如果我运行此代码,我会收到一个javascript运行时错误:
Caught exception: Object doesn't support this action
为什么我会遇到这个问题?
如果我无法搜索如何使用位置比较字符串?
修改
令我感到困惑的是,该位置确实具有只读属性搜索,即HTTP GET命令。
我在想我正在对字符串进行搜索 - 而是试图写入只读属性。
答案 0 :(得分:2)
尝试:
window.top.window.location.href
您只能提醒字符串。
window.location
变量是一个对象,具有href
属性,什么是字符串。
请参阅文档:http://www.w3schools.com/jsref/obj_location.asp
如果您想查看位置对象内的内容:
console.log(window.top.window.location);
这将打印出这样的内容(在chrome中):
Location
-ancestorOrigins: DOMStringList
-assign: function () { [native code] }
-hash: ""
-host: "stackoverflow.com"
-hostname: "stackoverflow.com"
-href: "http://stackoverflow.com/posts/15863038/edit"
-origin: "http://stackoverflow.com"
-pathname: "/posts/15863038/edit"
-port: ""
-protocol: "http:"
-reload: function () { [native code] }
-replace: function () { [native code] }
-search: ""
-toString: function toString() { [native code] }
-valueOf: function valueOf() { [native code] }
-__proto__: Location
...
答案 1 :(得分:1)
您需要使用window.top.window.location.href
! window.top.window.location
是一个不是字符串的对象。
//are we already on the same form
var loc = window.top.window.location.href;
if(loc)
window.alert("loc=" + loc);
if(loc && loc.search(form, "i") != -1)
{
}