Javascript DOMContentLoaded和turbolinks:load不会在动态加载的脚本上触发,并加载第一页(加载时不加载turbolinks)
“turbolinks:load”不会在直接加载的页面上触发,但在使用turbolinks加载的页面上,“turbolinks:load”事件工作正常Javascript DOMContentLoaded和turbolinks:load不会在动态加载的脚本上触发,并加载第一页(加载时不加载turbolinks),javascript,ruby-on-rails,turbolinks,domcontentloaded,dynamic-script-loading,Javascript,Ruby On Rails,Turbolinks,Domcontentloaded,Dynamic Script Loading,“turbolinks:load”不会在直接加载的页面上触发,但在使用turbolinks加载的页面上,“turbolinks:load”事件工作正常 <!DOCTYPE html> <html> <head> <script type="text/javascript" src="https://rawgit.com/turbolinks/turbolinks/master/dist/turbolinks.js"></scrip
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://rawgit.com/turbolinks/turbolinks/master/dist/turbolinks.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<title>
test
</title>
<script>
function loadScript(src) {
if(!document.querySelector("script[src='"+src+"']")){
var n = document.createElement("script");
n.src = src;
n.async = false;
document.getElementsByTagName("head")[0].appendChild(n);
};
};
</script>
</head>
<body>
<p style='color:red'>
Hi Priority Rendering With inline css to improve start render
</p>
<script type="text/javascript">
loadScript("dynamic_load_turbolinks_script.js");
</script>
</body>
</html>
以上代码的浏览器控制台输出为
dynamic_load_turbolinks_script.js:1 This file will contain all functionally required script
dynamic_load_turbolinks_script.js:6 Inside window onload
dynamic_load_turbolinks_script.js:12 Inside document ready
我知道问题是因为动态脚本是在DOM解析之外执行的,但是,有什么方法可以实现所需的行为吗?这里也有同样的问题:(
dynamic_load_turbolinks_script.js:1 This file will contain all functionally required script
dynamic_load_turbolinks_script.js:6 Inside window onload
dynamic_load_turbolinks_script.js:12 Inside document ready