模拟window.location对象

时间:2018-06-03 13:19:43

标签: javascript html dom

我有一个iFrame,我想在其src属性中获取URL并获取其内容并使用docuemnt.write将其注入iFrame。所以现在,iFrame在同一个起源,我可以触摸它的contentWindow。 但是我在使用window.location对象的iFrame中运行的JS文件遇到了一些麻烦,当然,在我目前的情况下它是空的(iFrame没有src)。所以,代码有一些意想不到的行为:(。 我想我在这里有两个选择:

  1. 使用匿名函数包装JS代码并将其传递给我们的“代理” 窗口对象,像这样:

    var windowProxy = {             地点 : {                 来源:“测试”,                 搜索:“测试”             }         };         (函数(窗){         的console.log(window.location.origin);         的console.log(window.location.search);         })(windowProxy);

  2. 这样可行,但我认为这个方法会有更多错误,因为一切都在函数上下文中执行。因此,如果代码声明全局变量或类似的变化,那么一切都会搞砸,我认为。

    1. secod方法和最难实现的是解析JS并用window.fakelocation替换对window.location的调用(使用fakelocation作为我们伪造的window.location对象)。
    2. 我真的很感激一些建议或其他方法。 :)

      更新: 好吧,我刚刚意识到第一种方法是不可能的,因为我必须创建整个窗口对象,这太荒谬了。

      所以,我现在离开了第二种方法。 :(

0 个答案:

没有答案