Jquery包装器方法不能与window.open一起使用

时间:2016-07-26 10:33:17

标签: javascript jquery

我很困惑......

function myFunction ()
{
    windowOne = window.open('', "_blank", "toolbar=0, scrollbars=yes,resizable=yes,top=50,left=150");
    $("<div id='textZone' contenteditable='true' style='background-color:navajowhite; color: red; height: 40px; width:140px;'></div>").appendTo(windowOne.document.body);
    $('#textZone').html('Hurray');
}

textZone的html设置不起作用,而在开始和结束<div>标签之间插入html文字,如

function myFunction ()
{
    windowOne = window.open('', "_blank", "toolbar=0, scrollbars=yes,resizable=yes,top=50,left=150");
    $("<div id='textZone' contenteditable='true' style='background-color:navajowhite; color: red; height: 40px; width:140px;'>Hurray</div>").appendTo(windowOne.document.body);
}

有人可以解释原因吗?

编辑 - 到目前为止我已尝试过:

windowOne.focus();
$('#textZone').html('Hurray');

还有:

$('body#textZone').html('Hurray');

还有:

$('windowOne.document.body').html('Hurray');

依此类推。

N.B。:我可能不得不转向“Hurray&#39;进入&#39; Crumbs&#39; ...

2 个答案:

答案 0 :(得分:1)

正如@rdubya所说,你需要指定你在其他文档中搜索元素,否则它将在主窗口中搜索元素。

试试这个:

$( '#textZone', windowOne.document.body ).html( 'Hurray' )

答案 1 :(得分:0)

Working JSFiddle

您基本上需要将新元素标记写入新窗口的引用。

  • 定义对&#34; popup&#34;。
  • 的引用
  • 存储对HTML的引用 这将存在于你的弹出窗口中。
  • 调用弹出窗口参考,并将存储的HTML写入该弹出窗口。
function myFunction() {
  var newWindow = window.open("", "_blank", "toolbar=0, scrollbars=yes,resizable=yes,top=50,left=150");
  var newElement = "<div id='textZone' contenteditable='true' style='background-color:navajowhite; color: red; height: 40px; width:140px;'>Hurray</div>";

  newWindow.document.write(newElement);
}

myFunction();