首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换document.write()

替换document.write()
EN

Stack Overflow用户
提问于 2015-08-18 13:10:11
回答 2查看 2.2K关注 0票数 2

我正在尝试替换Javascript中的document.write()函数。不完全确定该如何做,因为我不知道要将HTML写到哪个元素。

目前,代码javascript代码被插入到我的页面中,使用:

代码语言:javascript
复制
<script src="//example.com/file.js" type="text/javascript"></script>

该文件包含一个document.write()函数:

代码语言:javascript
复制
document.write('<h2>Testing HTML</h2>Hello');

但是,由于不能异步调用document.write(),我需要找到另一个解决方案。我不能使用getElementsById()或类似的东西,因为我根本不知道目标网站上的任何元素。

我希望HTML代码准确地插入到脚本标记所在的位置上。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-18 13:21:46

试试这个:

代码语言:javascript
复制
<script src="//example.com/file.js" type="text/javascript" id="myScript"></script>

在javascript中:

代码语言:javascript
复制
var script = document.getElementById('myScript');
script.outerHTML += '<h2>Testing HTML</h2>Hello';

由于您没有脚本ID,请尝试如下:

代码语言:javascript
复制
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];

// Async
setTimeout(function() {
    script.outerHTML += '<h2>Testing HTML</h2>Hello';
}, 2000);
票数 5
EN

Stack Overflow用户

发布于 2015-08-18 13:25:23

首先,您需要创建一个元素来将HTML添加到其中,如果您已经在变量中使用了HTML,那么很好,请使用它而不是下面的yourElement

代码语言:javascript
复制
// Create an element, add HTML to it
var yourElement = document.createElement ('div');
    yourElement.innerHTML = '<div>Test</div>';

然后,您将得到当前的JavaScript标记..。

代码语言:javascript
复制
// Get the current script tag (meaning yours)
var scripts = document.getElementsByTagName ('script');
var thisScript = scripts[scripts.length - 1]

然后在这个标签前插入HTML元素..。

代码语言:javascript
复制
// Insert your element before current script tag
thisScript.parentNode.insertBefore (yourElement, thisScript);

您还可以在JavaScript标记之后插入HTML元素。

信用:这段代码的灵感来源于HashOver:http://tildehash.com/hashover/hashover.js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32073407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档