我想仅在达到特定div时才加载横幅广告脚本。例如 - 页面底部的横幅div。
我可以使用jquery lazy脚本加载外部脚本:
var options = {
type: "visible",
id:"mydiv", //div Id
scripts: [
"1.js",
"2.js",
"3.js"
],
success: function () {
}
};
$.lazyscript(options);
但是如何加载内联脚本?
感谢。
答案 0 :(得分:1)
整个html文档从上到下进行解析,包含脚本标记。所以从这个意义上说,你的内联javascript已经被加载了。"我可能误解了你的问题。
如果你不希望你的内联脚本在解析后立即执行,你需要在内联脚本中使用某种事件监听器。
例如,假设您的内联横幅广告代码包含在函数中
<script>
loadBannerScriptAd()
</script>
你需要写一些像
这样的东西<script>
$(document).on("loadBannerScript", loadBannerScriptAd)
</script>
你可以通过
随时触发$(document).trigger("loadBannerScript")
所有这一切都假设你有基于你上面给出的代码示例的jquery。查看http://api.jquery.com/trigger/以获取有关如何通过jquery触发自定义事件的详细信息。
答案 1 :(得分:0)
您可以尝试我的项目jquery-lazyload-any
HTML
<div id="you-want-lazyload">
<!--
<script>doSomething();</script>
-->
</div>
JavaScript的:
$('#you-want-lazyload').lazyload(options);
或 另一个jquery-appear
HTML
<div id="you-want-to-detect">
</div>
的JavaScript
$('#you-want-to-detect').bind('appear', doSomething); // you have to unbind event if you want to trigger only once