动态引入document.write的脚本

JS 中 document.write() 的用法和隐藏的坑 中的内容会将文档中的原本内容给覆盖掉,对于初学JS的朋友来说可能摸不着头脑,下面就针对这个问题,做下简单的探讨。中的内容写入到新的文档流中,这样新的文档流就会覆盖原本已加载的文档流,也就是情况二的由来。当我们点击button按钮时,执行对应的函数内容时,由于页面初始的文档流已经关闭,所以。首先,了解文档流的同学都知道,页面第一次打开时,浏览器会自上而下读取页面内容,1. 页面加载时,浏览器默认创建的文档流自上而下会读取整个页面内容,此时。创建一个新文档流,这个新文档流将会覆盖替换掉之前的文档流. 阅读详情

动态引入document.write的脚本

当网站需要动态引入脚本时,而引入的脚本逻辑又是通过document.write执行时,往往会出现问题。因为动态引入的脚本是会在页面DOMContentLoaded 事件完成后触发onload事件,此时页面dom结构渲染完成了,而此时document.write的渲染会把页面内容清空之后在写入。为了防止重复渲染,浏览器会禁止document.write执行。

Failed to execute ‘write’ on ‘Document’: It isn’t possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened

方法一

改变页面加载的顺序
可以使用document.open打开页面渲染,改变页面的结构后调用document.close重新渲染

  <script>
      // 动态引入js文件
      document.open();
      document.write(`\<script src="https://srcfile/${num}/header.js"\>\<\/script\>`)
  </script>
  <!--header.js会动态插入这里-->
  <div id="app"></div>
  <script>
      document.write(`\<script src="https://srcfile/${num}/footer.js"\>\<\/script\>`)
      document.close();
  </script>
    <!--footer.js会动态插入这里-->

开启document.open之后,document.write的内容就会紧跟着写在document后面,而不会覆盖原始内容

方式二

将脚本作为接口地址请求,获取到内容,然后通过Dom.parser将内容转为html后解析里面的内容,插入网站中
需要处理文本内容

方式三

使用iframe存放脚本

const header_src = `https://srcfile/${num}/header.js`
      const iframe = document.querySelector('.heade-iframe');
      loadScriptViaIframe = () => {
        iframe.onload = () => {
          const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
        iframeDoc.open();
         iframeDoc.write(`\<script src="${header_src}"\>\<\/script\>`);
          iframeDoc.close();
        };
      }
        loadScriptViaIframe()
        document.body.insertBefore(iframe, document.body.firstChild);

适用性不强

方式四

如果脚本方能够提供可以动态引入的脚本文件最好

MBIST --- PATR2.Memorybist 测试流程 mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist的flow,如何在tessent中实现mbist以及tessent中的一些命令和mode。 阅读详情

相关推荐

LaTeX新手入门以及TeXlive和TeXstudio的安装使用

作为一个新手,LaTeX的了解和使用很是费了一番功夫,因此,在这里给找不到路的同志们稍微介绍一下。如有错误,敬请指正。本篇内容基于Win10系统,因此安装在Mac或者Linux上的同学可以再找找其他的介绍文章。 目录 LaTeX介绍 LaTeX环境配置 一、TeXlive下载 二、TeXlive安装 1. 安装main installer 2. 正式安装 三、TeXstudio安装...

zywhehe的博客 21万+

去掉你代码里的 document.write("<script...

在传统的浏览器中,同步的 script 标签是会阻塞 HTML 解析器的,无论是内联的还是外链的,比如: &lt;script src="a.js"&gt;&lt;/script&gt; &lt;script src="b.js"&gt;&lt;/script&gt; &lt;script src="c.js"&gt;&lt;/script&g

weixin_34387468的博客 2102

RV1126开发板性能实测:网络、温度与功耗全解析

本文对RV1126开发板进行了全面的性能实测,重点分析了网络性能、温度表现与功耗特性。测试发现UDP带宽可达500Mbps,但TCP性能受限于协议栈;散热设计对持续性能至关重要,大板子在AI推理和视频推流中表现更稳定。为嵌入式开发者提供了真实的选型参考和优化建议。

d3e4f的博客 266

document.write script不生效用document.createElement替代

最近遇到一个document.write("<script type='text/javascript' src='test.js'></script>")在ie浏览器不生效的问题,可用document.createElement("script");解决 var s = document.createElement("script"); s.type = "text/javascript"; s.src = "test.js"; document.getElemen

Don't lost way 2674

手把手拆解DGX GB200 NVL72:1个机柜如何塞进72块GPU?详解NVLink Switch铜缆背板设计

本文深度解析英伟达DGX GB200 NVL72系统如何通过NVLink Switch铜缆背板设计,在标准42U机柜中集成72块B200 GPU,实现1800GB/s的超高带宽。文章详细介绍了模块化架构、铜缆互连技术、液冷散热方案和高密度供电系统等核心创新,为AI算力需求提供突破性解决方案。

red88的博客 1579

【机器学习—评估指标】混淆矩阵、准确率、精确率、召回率、F1分数、ROC曲线和AUC

机器学习评价指标是衡量模型性能的关键工具。本文介绍了常见指标及其计算方法:1.混淆矩阵展示分类预测结果分布,包含TP、TN、FP、FN四个基础指标;2.准确率反映整体预测正确率;3.精确率关注预测正例的准确性;4.召回率衡量正例检出能力;5.F1分数综合平衡精确率和召回率;6.ROC曲线通过TPR与FPR的权衡关系评估模型性能,AUC值量化区分能力。文章详细说明了各指标的定义、计算公式、适用场景及局限性,并通过Python代码示例演示了具体实现方法,特别对ROC曲线和AUC的计算原理进行了深入解析。

weixin_51375278的博客 6744

document.write中写script语句不生效

document.write中写script语句不生效报错

qq_62810001的博客 1338

别再只用CANape测数据了!手把手教你用ASAP2 Studio编辑A2L文件(附MAP文件更新避坑指南)

本文深入探讨ASAP2 Studio在ECU开发中的高阶应用,特别是如何利用其编辑A2L文件并同步更新MAP文件,提升测量标定效率。文章详细解析了ASAP2 Studio的双向同步能力、MAP文件更新全流程及变量管理技巧,帮助工程师避免常见错误,优化工作流程。

weixin_26833939的博客 508

document.write 方式引入外部 JS 文件导

标准参考 关于 document.write 方法请参考标准文档:DOM Level 2 HTML 规范 1.5. Objects related to HTML documents。 问题描述 当脚本中存在以 document.write 的方式向页面内写入内容时,各浏览器对于执行各个线程的顺序可能不一致。 造成的影响 此现象造成在各浏览器里,某些需要延后执行的

每天积累一点,一年后你会发现,自己变化很大 9659

智慧城市中的CV:交通流量监控与行人检测

智慧城市中的CV:交通流量监控与行人检测 ,人工智能,计算机视觉,大模型,AI,计算机视觉作为人工智能的重要分支,通过分析和理解图像或视频数据,为智慧城市提供了强大的感知能力。在交通管理领域,计算机视觉技术可实现交通流量监控、行人检测、违章行为识别等功能,助力构建高效、安全、绿色的城市交通系统。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 5万+

人工智能训练师三级考试备考全攻略|报名条件+真题+补贴申领一站式通关(2026版)

本专栏是人工智能训练师三级考证最完整的备考指南,共77篇文章,覆盖从职业认知、报名实操、AI基础知识、数据标注、模型训练测试部署、考前冲刺到考后进阶的全链路。本导读按模块整理了全部文章链接,帮你快速定位所需内容。人工智能训练师是国家认定的正式职业,证书可在osta.mohrss.gov.cn查询,三级证书可申领最高3120元技能补贴。

白话机器学习 1792

探析浏览器执行JavaScript脚本加载与代码执行顺序

本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题 1. 关于JavaScript脚本执行的阻塞性 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析、渲染以及其他资源的下载都要停下来等待脚本执行完毕①。这一点是没有争议的,并且在所有浏览器中的行为都是一致的,原因也不...

lengye7的博客 855

RT-DETR 跨模态检测改进:融合红外数据提升 R50 夜间检测效果

本文提出跨模态自适应融合RT-DETR(CMF-RTDETR-R50),通过双分支骨干网络、可变形模态对齐和门控注意力融合三大模块,将红外数据融入RT-DETR-R50检测器,显著提升夜间目标检测性能。该方法在夜间场景下mAP@0.5提升11.7%,小目标检测AP_S提升15.3%,同时保持实时性(38 FPS)。关键技术包括:1)独立提取可见光与红外特征;2)可变形卷积解决模态对齐问题;3)动态门控机制自适应融合双模态特征。该方案适用于安防监控、自动驾驶等夜间检测场景,为跨模态实时检测提供实用解决方案。

走向CTO的路上... 1446

浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序

本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题

每天进步一点点 1840

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jQuery动态添加script标签

jQuery动态添加script标签 1、 $.getScript(url,success(response,status)); 2、 var script = document.createElement('script'); script.type = 'text/jacascript'; script.src = 'url'; //填自己的js路径 $('body').app...

weixin_43897661的博客 7985

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

spa中引入百度地图api出现警告

spa中引入百度地图api出现警告 引入百度地图之后,页面出现黄色警告: api?v=2.0&amp;ak=dm65KD93tW9zmcZys9YvKIUj:1 A parser-blocking, cross site (i.e. different eTLD+1) script, http://api.map.baidu.com/getscript?v=2.0&amp;ak=dm65KD93...

Amanda_wmy的博客 1971

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

动态插入js的加载过程是异步加载的

参考:动态创建&lt;script&gt;标签加载JS文件时是异步加载转载自:探析浏览器执行JavaScript脚本加载与代码执行顺序本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题1. 关于JavaScript脚本执行的阻塞性JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页...

lzf的博客 2109

如何在一个js文件中引入另外的js文件

例如想要在a.js中引用b.js、c.js和d.js document.write("<script language='javascript' src='b.js'></script>"); document.write("<script language='javascript' src='c.js'></script>"); docu...

weixin_30484247的博客 768

js中导入引用外部js

js中导入引用外部js

芯蕊的阳光 8926

html动态加载js方法,动态引入js四种方法总结

这次给大家带来动态引入js四种方法总结,动态引入js四种方法的注意事项有哪些,下面就是实战案例,一起来看一下。index.html test.jsalert("hello! I am test.js");var str="1";dynamic.js//第一种方式:直接document.write 但这样会把当前的页面全覆写掉//document.write("");//第二种方式:动态改变已有sc...

weixin_39641697的博客 6132

21 Web基础 网页的关节JS

什么是JS HTML中的脚本编程语言:JavaScript,但和Java毛关系没有   这都不重要,重要的是: JS决定了如何动态改变HTML元素   使用JS 在html中使用js 引入外部.js文件   内容 document.write() 变量var:数值、字符、数组、字典/对象 document.getElementById() onclick="myFunct...

一夜飘零 7828

提高JS文件加载速度

开发过程中,经常发现JS加载文件出现过慢,导致页面文件很长时间打不开。 解决办法:换一个js包含的方式,让javascript加载速度倍增。 把通常加载方式: 改变成: document.write("") ...

wrong1111 533

Javaweb之javascript的详细解析

通过代码/js效果演示提供资料进行效果演示,通过浏览器打开,我们点击主题5按钮,页面的主题发生了变化,所以js可以让我们的页面更加的智能,让页面和用户进行交互。

qq_69748833的博客 1080

Hello_World

http://www.w3.org/TR/REC-html140/strict.dtd">     Hello World           document.write("Hello World!");    document.write("Hello World!");                      document.write("Hello World!");         

白云出岫本无心的专栏 429

4中js嵌入html的方式

4中js嵌入html的方式

m0_71153620的博客 4866
上一篇: 微信小程序BackgroundAudioManager使用中的问题
下一篇: Wxml2Canvas在组件中的渲染获取不到元素问题
晨灰ash2
博客等级 码龄7年 73粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨灰ash2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值