0

我需要检查该位置是否与某些文本相似。所以我的代码如下:

        //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 实例 - 所以它不为空。但是搜索有效吗?

但是如果我运行这段代码,我会得到一个 javascript 运行时错误:

Caught exception: Object doesn't support this action

为什么我会遇到这个问题?

如果我无法搜索如何使用位置比较字符串?

编辑

让我感到困惑的是,该位置确实有一个只读属性搜索,即 HTTP GET 命令。

我在想我是在对一个字符串进行 .search - 而是试图写入一个只读属性。

4

2 回答 2

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
            ...
于 2013-04-07T13:41:34.223 回答
1

你需要使用window.top.window.location.hrefwindow.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)
    {

    }

图片

于 2013-04-07T13:42:43.010 回答