如何使用window.open()方法将一块html附加到加载的html页面
How to append a chunk of html to a loaded html page using window.open() method
我正试图通过window.open((方法将一块html附加到加载的html页面。在本例中,html块将是一个字符串。
var w = window.open('mypage.html, 'windowname', 'scrollbars=yes,location=no,toolbar=no,status=no,width=500,height=550,left=300,top=50');
var htmlChunk = '<span>bla bla</span>'
$(w.document.body).append( htmlChunk );
$(w.document.body(似乎无法访问弹出窗口中mypage.html上的body标记。
我还尝试使用现成的方法。
$(w.document.body).ready(function(){
$(this).find('body').append(htmlChunk);
});
这也不起作用——它把它附加到弹出窗口下面的窗口中。
这里需要明确的是,我不想直接向mypage.html添加任何JS。我需要能够访问弹出的mypage.html body标记,并在其中附加一块html。在我的设置中,我在main.html页面中有一个js文件。在main.html页面中,我有一个链接,上面有一个点击事件,该事件设置在js文件中。这就是我调用弹出窗口的地方,我从main.html页面捕获一块html,并将其附加到弹出窗口中的mypage.html。
您可以这样做:
$(w).on("load", function(){
$("body", w.document).append( htmlChunk );
});
onload事件处理程序使代码等待,直到创建了新窗口,并使用w.document
作为jQuery的第二个参数来设置新窗口上的上下文。您不能从子窗口运行jQuery实例,因为它没有加载jQuery。
如果我没有弄错的话,jQuery中的$((-运算符应该在页面"就绪"时运行。所以你可以试着简化一下你的代码吗?
我会这样做:
$(function(){
$("body").append("This is the string you send in");
});
<script type="text/javascript">
$(document).ready(function () {
var output = "data";
var OpenWindow = window.open("mypage.html", "mywin", '');
OpenWindow.dataFromParent = output; // dataFromParent is a variable in mypage.html
OpenWindow.init();
});
</script>
在mypage.html中:
<script type="text/javascript">
var dataFromParent;
function init() {
document.write(dataFromParent);
}
</script>
如果您需要在新窗口的DOM准备好后运行代码,请尝试以下操作:
var OpenWindow = window.open("mypage.html", "mywin", '');
$(OpenWindow.document.body).ready(function() {
$(OpenWindow.document.body).append('<p>hi</p>');
});
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 使用angular重定向到html页面
- Html页面上的多个Base64图像和平滑加载
- 无法将数据从firebase获取到我的html页面
- 如何在chrome扩展中重定向到html页面
- 如何将值传递到上一个html页面
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何使用Node/Express显示有关特定错误的自定义html页面
- 如何在 html 页面中调用 jquery
- 加载存储在IndexedDB中的HTML页面
- 同一HTML页面中的两个不同版本的JQuery
- HTML页面如何提取通过表单传递的参数
- 在HTML页面上将URL解析为可读的json格式
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 在HTML页面上显示node.js服务器中的数据
- 加载页面时更改html页面的位置
- Ajax调用返回当前html页面,而不是请求的文件
- css是从远程node.js添加的,但不适用于html页面