我设置了一个JQuery Mobile页面:
<body>
<div class="normal" data-role="page" data-title="Photo Stream">
<script type="text/javascript" src="js/photostream.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
function onDeviceReady() {
}
</script>
<div id="programholder">
~~addtional HTML~~
外部JS脚本photostream.js
在应用程序首次打开时起作用,但如果我返回此页面则不会再次运行。我假设这是由于AJAX如何将页面加载到彼此之上,但看到我的外部链接在data-role="page"
div内,我认为每次该元素重新出现时都会触发它。
有没有办法在重新访问此页面时再次重新加载外部JS文件?
答案 0 :(得分:1)
如果我正确理解您的问题,您希望每次加载特定页面时都显式加载外部js文件 - photostream.js。但是由于AJAX加载页面的方式,这在JQuery Mobile中不会发生。
当我触发pageshow事件时,您是否已尝试绑定要加载的外部脚本。
$("#page1").on('pageshow', function(event, ui){
var filename = "photostream.js";
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
});