javascript-如何在Firefox中读取数据并将数据写入新标签?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何在Firefox中读取数据并将数据写入新标签?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1807字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何在Firefox中读取数据并将数据写入新标签?](/upload/InfoBanner/zyjiaocheng/678/e9d948f4d8ac4352862b68b578078ebe.jpg)
在过去,此方法可以正常工作:
// writing
var newTab = window.open();
newTab.document.write("<html><head><title>I'm just a tab</title></head>");
newTab.document.write("<body id='hello'>With some text on it</body>");
newTab.document.write("</html>");
newTab.document.close();
// reading what was wrote
newTab.document.getElementById('hello').addEventListener("click", custom_search_function(), false);
但是,现在当我尝试执行此代码时,Firefox提到了一个安全错误:
错误:安全错误:操作不安全.
我在论坛上搜索了替代方法,此方法有效:
var textOnPage = "<html><head><title>I'm just a tab</title></head><body>";
var newTab = window.open("data:text/html;charset=UTF-8," + encodeURIComponent(textOnPage));
newTab.document.close();
但是我无法通过getElementById访问页面
newTab.document.getElementById('hello').addEventListener("click", custom_search_function(), false);
返回:
错误:TypeError:newTab.document.getElementById(…)为空
如何写这个新标签,然后再通过诸如getElementById之类的功能阅读它?
解决方法:
您将误以为是Single Origin Policy.打开没有URL的新窗口时,根据定义,它的域名不能与原始(打开)窗口的域名相同.
您可以改让window.open()调用在您的网站上打开另一个URL(通常为空白html),并将其作为body.onload事件处理程序(或jQuery.ready())的一部分,您可以为消息设置事件处理程序像这样的事件:
$(document).ready(function(){
window.addEventListener("message", receiveMessage, false);
});
function receiveMessage(evt)
{
if (evt.origin !== "https://your-domain.here")
return;
// do something with evt.data
$(document.body).append(""+evt.data);
}
在原始窗口中,您调用:
otherWindow.postMessage(message, "https://your-domain.here");
现在,各种现代浏览器都很好地支持postMessage API.
您仍然无法直接进入操作otherWindow的内容,但是您可以将消息从otherWindow发送回原始窗口,以达到相同的效果. (例如:将您的内容操作代码放入otherWindow的内容中,然后从您的原始窗口“调用”它).
内容总结
以上是互联网集市为您收集整理的javascript-如何在Firefox中读取数据并将数据写入新标签?全部内容,希望文章能够帮你解决javascript-如何在Firefox中读取数据并将数据写入新标签?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。