在单击按钮之前不要加载 JavaScript 标记

Posted

技术标签:

【中文标题】在单击按钮之前不要加载 JavaScript 标记【英文标题】:Do not load a JavaScript tag until you click on a button 【发布时间】:2021-08-02 20:24:07 【问题描述】:

我有一个在页面加载时不应加载的第三方 javascript 代码。

因此,当您单击“请求更多信息”时,它只会在那个时候加载。

我尝试使用显示/隐藏,但刷新页面时脚本似乎仍在加载。

我的 html 在这里

 <button onclick="PodiumWebChat.open()">
  Open chat

而 Javascript 是:

<div id="divscript" style="display: none;"><script defer src="https://connect.abc.com/widget.js#API_TOKEN=c0726ce52f4a" id="podium-widget" data-api-token="c0726ce52f4a"></script></div>

【问题讨论】:

您是否尝试将 script 标签添加到 document.body 作为 #button 的 onClick 的一部分? ^ 你可能想设置一个标志,所以你只做一次。 这能回答你的问题吗? Load javascript file after button click CSS 与加载的脚本标签无关。 ***.com/questions/13121948/… 附加它...它可能不起作用,具体取决于脚本中的内容。 【参考方案1】:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

<input type="button" id="RequestADemo" onClick="$('#default').click()" value="Request A Demo" />
<div id="test"></div>
<script type="text/javascript">

$(document).ready(function()
  // this code will run when the document has loaded
  // and all elements are in place

  $("#RequestADemo").click(function()
    // this code will be run when the user clicks on
    // the button we created above

    $('#default').click(); // this calls the click event on #default

    //alert('Finished'); // now it is finished
        var tag = '<script defer src="https://connect.abc.com/widget.js#API_TOKEN=c0726ce52f4a" id="podium-widget" data-api-token="c0726ce52f4a"><\/script>';
       $('#test').append(tag); //testing

  ); // close the click handler on #RequestADemo

); // close the document.ready code block.

</script>

【讨论】:

以上是关于在单击按钮之前不要加载 JavaScript 标记的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 在按钮单击时加载页面

如何在javascript中单击按钮重新加载网页,但在重新加载调用函数后

如果为空选择选项,则单击按钮时显示模式引导

单击按钮Javascript,HTML时页面重新加载

JavaScript:单击按钮后在 div 中加载图像

CI - 使用 Javascript 按钮加载控制器