首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在不使用document.write的情况下插入头部标签中的特定位置

在不使用document.write的情况下插入头部标签中的特定位置
EN

Stack Overflow用户
提问于 2012-11-22 04:36:58
回答 2查看 928关注 0票数 1

这可能是不可能的,但值得一问。我将动态地将脚本标记插入到页面的head部分。目前,我正在使用document.write,你们中的许多人都会对此不屑一顾,但它确实做得很好。

但是,出于概述here的原因,我想找到一种替代document.write的方法。

因此,我需要一个可以这样做的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- The document.write writes the new script here synchronously so it will block other scripts -->

<script type="text/javascript">
    // Code here that uses the code from the dynamically inserted script
</script>

是否有人建议使用jQuery或普通javascript在页面上插入元素,但同时满足以下要求:

  1. 将调用函数的点放置在元素上。例如,脚本标记放在调用它的脚本标记之后
  2. 脚本将同步加载,因此会阻塞其他脚本,直到完成为止。

谷歌( Google.load() )用他们的方法来做这件事,他们使用document.write吗?当然不是.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-22 04:42:23

您可以查看本文-- facebook使用类似的http://www.phpied.com/non-onload-blocking-async-js/脚本异步加载它们的SDK。

它是跨浏览器的,可以异步加载脚本,即使页面上的html无效(即使head/body标记丢失)。

下面是一个直接来自facebook的SDK的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  (function(d, debug){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
   }(document, /*debug*/ false));

您必须做一些修改,因为它允许您只加载脚本一次(因为if (d.getElementById(id)) {return;})。

如果我们仔细看一下脚本,我们可以看到一些好处:

  • 在您的页面上,您只需要一个script标记(因为异步加载的脚本),所以这就是为什么它要获得第一个脚本元素
  • 它查找已经添加的SDK。
  • 它使用指定的id创建新脚本元素。
  • 它设置脚本的src
  • 它将脚本元素插入到特定的位置。
  • 它异步加载脚本,从而防止页面阻塞。
  • 自调用函数为文档对象创建短别名。这使得脚本更加紧凑。
票数 2
EN

Stack Overflow用户

发布于 2012-11-22 04:42:36

你可以用不同的方式来做。正如在这里的各种答案中提到的,Link。但我用的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var load_js = function(data, callback)
            {
                    var head = document.getElementsByTagName("head")[0];

                    var script = document.createElement("script");
                    script.type = "text/javascript";
                    script.src = data;
                    head.appendChild(script);

                    if(callback != undefined)
                            callback();
            }

            load_js("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13512903

复制
相关文章
使用R语言在向量的任何位置插入任何元素
然后学员有任意需求,任意位置添加任意数字,这样写会比较麻烦,每次都有手动判断向量长度,范围等等,因为她是初学者,所以不可能会无限R包和函数,我这里简单演示一下:
生信技能树
2019/11/06
6.9K0
使用R语言在向量的任何位置插入任何元素
【说站】js数组在头部或尾部插入元素的方法
以上就是js数组在头部或尾部插入元素的方法,希望对大家有所帮助。更多js学习指路:js教程
很酷的站长
2022/11/24
3.6K0
插入位置
给定一个排序数组nums(无重复元素)与目标值target,如果target在nums里 出现,则返回target所在下标,如果target在nums里未出现,则返回target应该 插入位置的数组下标,使得将target插入数组nums后,数组仍有序。 LeetCode 35. Search Insert Position
小飞侠xp
2018/08/29
8830
使用JPA原生SQL查询在不绑定实体的情况下检索数据
在这篇博客文章中,我将与大家分享我在学习过程中编写的JPA原生SQL查询代码。这段代码演示了如何使用JPA进行数据库查询,而无需将数据绑定到实体对象。通过本文,你将了解如何使用原生SQL查询从数据库中高效地检索数据。
高久峰
2023/08/07
7520
链表头部插入节点
先创建一个头节点指针置NULL代表链表现在为空,我们通过insert函数给增加的节点分配内存,然后让节点的link指向head(此时head是NULL) 再将head指向此节点,我们大致上就创建出了下图的节点
用户7272142
2023/10/11
2070
链表头部插入节点
使用insert () 在MongoDB中插入数组
“insert”命令也可以一次将多个文档插入到集合中。下面我们操作如何一次插入多个文档。
MongoDB中文社区
2020/02/19
7.7K0
使用insert () 在MongoDB中插入数组
在JS数组指定位置插入元素
一、JavaScript splice() 方法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
用户7741497
2022/03/06
6.2K0
iOS UITableView获取特定位置的cell
一、tableView双级联动 [菜单栏联动.gif] [UITableView双级联动.gif] 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的indexPath。 方案一:获得当前可见的所有cell,然后取可见cell数组中的第一个cell就是目标cell,再根据cell获得indexPath。代码如下 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ if (scrollV
且行且珍惜_iOS
2018/05/23
4.8K5
HTML中p标签中插入div标签会发生什么
问题: <p>中能不能插入<div>? 插入<div>会如何? 先试验一下 image.png 我们可以看到, <div>把<p>分成了两段, 并且div外字段并不在<p>内 解答: 可以
治电小白菜
2020/08/25
3.6K0
HTML中p标签中插入div标签会发生什么
搜索插入位置
题意 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。 样例 [1,3,5,6],5 → 2 [1,3,5,6],2 → 1 [1,3,5,6],7 → 4 [1,3,5,6],0 → 0 思路 跟普通的二分查找类似,循环的条件是 min <= max,如果 target 和 mid 指向的值相等,则返回 mid,否则根据情况 min = mid + 1 或者max = mid - 1。 这样如果找不到该数,max 是
一份执着✘
2018/06/04
8490
搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你的益达
2020/08/05
3550
在特定环境中安装指定版本的Docker
通常用官方提供的安装脚本或软件源安装都是安装的比较新 Docker 版本,有时我们需要在一些特定环境的服务器上安装指定版本的 Docker。今天我们就来讲一讲如何安装指定版本的 Docker 。
子润先生
2021/06/18
4K0
iOS UITableView获取特定位置的cell
一、tableView双级联动 菜单栏联动.gif UITableView双级联动.gif 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的ind
且行且珍惜_iOS
2018/06/29
1.3K0
在字符串中删除特定的字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 首先我们考虑如何在字符串中删除一个字符。由于字符串的内存分配方式是连续分配的。我们从字符串当中删除一个字符,需要把后面所有的字符往前移动一个字节的位置。但如果每次删除都需要移动字符串后面的字符的话,对于一个长度为n的字符串而言,删除一个字符的时间复杂度为O(n)。而对于本题而言,有可能要删除的字符的个数是n,因此该
猿人谷
2018/01/17
9K0
看AspectJ在Android中的强势插入
什么是AOP AOP是Aspect Oriented Programming的缩写,即『面向切面编程』。它和我们平时接触到的OOP都是编程的不同思想,OOP,即『面向对象编程』,它提倡的是将功能模块化,对象化,而AOP的思想,则不太一样,它提倡的是针对同一类问题的统一处理,当然,我们在实际编程过程中,不可能单纯的安装AOP或者OOP的思想来编程,很多时候,可能会混合多种编程思想,大家也不必要纠结该使用哪种思想,取百家之长,才是正道。 那么AOP这种编程思想有什么用呢,一般来说,主要用于不想侵
用户1907613
2018/07/20
2.6K0
看ASM在代码中的强势插入
前言 我之前写过一篇AOP的文章 看AspectJ在Android中的强势插入 是通过AspectJ来实现的,本篇是『巴掌』的投稿,他通过使用ASM来讲解了在Java和Android中的AOP方法,非常值得大家学习交流~ demo地址:https://github.com/JeasonWong/CostTime 需求 实际业务开发中有很多需要不改变原业务代码,而需额外增加一些包括各种统计的需求,如APM、无数据埋点等,也就是耳熟能详的AOP,本文以统计方法耗时为例,不使用Aspectj,采
用户1907613
2018/07/20
4.9K0
位置编码在注意机制中的作用
A. Vaswani等人的《Attention Is All You Need》被认为是解决了众所周知的LSTM/RNN体系结构在深度学习空间中的局限性的突破之一。本文介绍了transformers 在seq2seq任务中的应用。该论文巧妙地利用了 D.Bahdanau 等人通过联合学习对齐和翻译的神经机器翻译注意机制的使用。并且提供一些示例明确且详尽地解释了注意力机制的数学和应用。
zenRRan
2021/06/17
2K0
Spring在无RedirectAttributes的情况下(如Interceptor中)使用Flash scope
判断逻辑很简单,但是重定向的时候需要前台有消息提示,如果是在Controller中,可以在方法上注入RedirectAttributes参数,但是Interceptor中默认没有这个参数,那么我们如何实现RedirectAttributes的flashMessage功能呢?
飞奔去旅行
2019/06/13
5.5K0
LeetCode - 搜索插入位置
LeetCode第35题,难度简单。接下去的题目可能会慢慢变成两三年之前做的题目了....清完库存我再接着解题,写题解...
晓痴
2019/08/19
5020
点击加载更多

相似问题

如何在jquery中不关闭标签的情况下在特定位置插入元素标签

15

头部标签中的document.write需要等待window.onload吗?

25

在不使用document.write的情况下,如何在执行当前JS的位置插入DOM节点?

22

在不覆盖c++的情况下将数据插入到文件中的特定位置

21

在不覆盖内容的情况下在特定位置使用fwrite()

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文