在我的htmlpage中有一个脚本标记
像这样的东西
<script id="loadmenu"></script>
上述脚本元素的“src”属性取决于托管Web应用程序的环境。
所以我写了这样的东西
$(document).ready(function(){
$("#loadmenu").attr("src",SRConfig.WESHost + "/webapp/" + SRConfig.WESApp+ "/servlet/WPSNav?mod=iwswps&idkey=displayhome");
});
正在从指定的源加载脚本。但只有在浏览器中解析并加载文档后才会加载脚本。 因为我使用$(document).ready()。
当文档完成解析时,脚本在加载后没有执行。有什么方法可以执行specific <script> tag
之后
网页正在解析并加载到浏览器中?
答案 0 :(得分:2)
看来你的jquery选择器不正确。它应该是
$("#loadmenu").attr("src",SRConfig.WESHost + "/webapp/" + SRConfig.WESApp+ "/servlet/WPSNav?mod=iwswps&idkey=displayhome");
答案 1 :(得分:1)
改为插入脚本标记:
$(document).ready(function(){
var scriptTag = $("<script/>");
scriptTag.attr("src",SRConfig.WESHost + "/webapp/" + SRConfig.WESApp+ "/servlet/WPSNav?mod=iwswps&idkey=displayhome");
$("head").append(scriptTag);
});
或使用facebook的类似代码。
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "Your URL";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'loadmenu'));
答案 2 :(得分:0)
如果对Detect if page has finished loading有所帮助,请查看http://api.jquery.com/load-event/。
基本上你可以在窗口中使用.load函数来查看它是否已完全加载并在此之后触发你的脚本。
文档:
{{3}}
答案 3 :(得分:0)
您是否有理由在javascript中修改src
属性?
如果要加载的脚本路径由托管的Web应用程序确定,我猜你可以简单地执行以下操作:
<script id="loadmenu" src="${SRConfig.WESHost}/webapp/${SRConfig.WESApp}/servlet/WPSNav?mod=iwswps&idkey=displayhome"></script>
服务器端应用在您的html模板中替换${}
。
我不熟悉论文SRConfig.*
背后的技术,所以我可能完全错了。