Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建没有iFrame的新窗口对象?_Javascript - Fatal编程技术网

Javascript 如何创建没有iFrame的新窗口对象?

Javascript 如何创建没有iFrame的新窗口对象?,javascript,Javascript,如何创建一个新的窗口对象,myWindow,该对象独立于窗口(因此修改例如myWindow.Array.prototype不会影响Window.Array.prototype),而不创建 目前我正在做如下工作 function newWindow(){ var myFrame = document.createElement('iframe'), myWindow = undefined; myFrame.style.display = 'none'; myFrame.s

如何创建一个新的
窗口
对象,
myWindow
,该对象独立于
窗口
(因此修改例如
myWindow.Array.prototype
不会影响
Window.Array.prototype
),而不创建

目前我正在做如下工作

function newWindow(){
    var myFrame = document.createElement('iframe'), myWindow = undefined;
    myFrame.style.display = 'none';
    myFrame.src = 'javascript:undefined;';
    document.body.appendChild(myFrame);
    myWindow = myFrame.contentWindow;
    document.body.removeChild(myFrame);
    return myWindow;
}

最后,我想制作自己的核心对象类型副本并对其进行原型制作。

Emm。。。你不能那样做。好。。。您可以调用
窗口。打开
,但它将打开一个新窗口。而且。。。你为什么需要这个?看来你走错了路

根据您正在执行的操作,更好的方法可能是创建一个普通数组,然后使用所需的功能扩展该特定数组实例

function augmentArray(a) {
  a.purgeAll = function() {a.length = 0;};
}

var myList = [1, 2, 3];
augmentArray(myList);
myList.purgeAll();

因为如果您使用
var myArr=function();myArr.prototype=[],你最终得到了一个几乎断开
.length
@shhac的数组-我了解原型。但不清楚你为什么需要一个新窗口。好。。。我无法帮助制作原型,因为我仍然没有机会/需要玩它。但无论如何。创建新窗口的唯一方法是iframe或window.open
window
对象是您可以访问的所有“全局变量”的父对象,创建新对象意味着它的所有子对象的新副本,但您不能简单地构造它,因为它抛出
类型错误:非法构造函数
(myWindow=window.open('javascript:undefined;')。close();
使
myWindow
成为
Window
对象(假设弹出窗口未被阻止)而且不需要
,所以虽然这不是我想要的,但我想它确实回答了问题。或者不破坏..至少使用iFrame,这在chrome中不会发生。我猜是因为垃圾收集器有一个对它的实时引用…+1,谢谢,我可能不得不走这条路,但我希望找到一种不同的方式让我我想要的数据类型,这是目前最接近的,我可以想象,如果我制作了许多“增强”数组,这会占用大量内存。但是,它没有回答有关
窗口
对象的问题,因此不能选择它作为正确答案,而另一个答案实际上是正确的,对不起。相关文章: