javascript - 使用谷歌标签管理器将javascript插入特定的div
问题描述
我目前使用谷歌标签实现 iframe 代码 - 使用下面的代码在我的目标页面上自定义 HTML 到特定的 div (id="empty-div"),它工作得很好。谷歌标签管理器(自定义 Html 标签 + 触发器)
自定义 HTML 标签:
<script type="text/javascript">
jQuery('[id="empty-div"]').html('<iframe src="https://feed.mikle.com/widget/v2/115010/" height="1200px" width="100%" class="fw-iframe" scrolling="no" frameborder="0"></iframe>');
</script>
我想用下面提供的代码替换上面的 iframe 代码。
<script type="text/javascript" src="https://feed.mikle.com/js/fw-loader.js" data-fw-param="115010/"></script>
寻找一个简单的实现
在 Google 跟踪代码管理器中发布时,执行以下操作会导致错误
<script type="text/javascript">
jQuery('[id="empty-div"]').html('<script type="text/javascript" src="https://feed.mikle.com/js/fw-loader.js" data-fw-param="115010/"></script>');
</script>
解决方案
我查了导致错误的原因。
解析错误。未终止的字符串文字
在 Gtag 中,您正在添加一个添加脚本的脚本。当您上传代码时,它将变成一大行文本。该文本以 开头<script>
和结尾</script>
。在 HTML 中这一切都会顺利,但由于它是一个string
脚本标签,因此会过早关闭,因为</script>
中间有另一个标签关闭第一个标签。使其后面的所有代码都无法解析并会引发错误。
所以我建议你使用下面的这个脚本,它将使用 vanilla JavaScript 创建一个新<script>
元素,设置正确src
并将其放入<div id="empty-div">
. 我选择不这样做,jQuery
因为我发现更容易解释没有它会发生什么。它对性能或其他 JavaScript 没有任何影响。
我不明白你为什么要<script>
在 div 中附加 的原因,因为这不是常见的做法,并且不会对 div 产生任何影响<div id="empty-div">
,但我相信你有你的理由。
<script>
(function () {
var empty = document.getElementById('empty-div'); // Select empty div
var script = document.createElement('script'); // Create new script element
script.setAttribute('data-fw-param', '115010'); // Add the data-fw-param attribute
script.async = true; // Set async to true. This can improve performance
script.src = https://feed.mikle.com/js/fw-loader.js; // Set the src to the script
empty.appendChild(script); // Insert the script into the empty div
}())
</script>
我在这个 SO 线程中找到了问题的解释。请搜索浏览器或工具给您的错误以供将来参考。您将有更多机会找到答案,而且速度更快!
希望这对编码有所帮助和快乐!
推荐阅读
- python - 如何用谷歌翻译器翻译单词?
- c - 初始化二维数组的函数
- xml - XSLT:将平面 XML 转换为分层 XML
- .net-core - 处理 .net core 2.1 web api 中的无效请求错误
- c# - 字典初始化问题
- mysql - SQL - 显示分组值从一组到另一组的变化(取决于时间)
- php - mysqli_connect 错误 2002“没有这样的文件或目录”Mac OS 10.13.2
- java - 如何在另一个 JTable 的单元格中实现 JTable 以及如何从数据库中实现列名?
- sql - Left(null,5) <> 'anything' 不正确?[T-SQL]
- javascript - 使用 javascript/Jquery 编写具有打字效果的文本