动态加载的<script>标记未在WebKit浏览器中使用</script>

时间:2010-07-14 18:28:35

标签: javascript jquery webkit jqtouch

这似乎是一个众所周知的问题,之前已经多次询问过SO但是我没有看到jQTouch的具体内容,所以我想我会尝试一下。

jQT将在单击链接时动态加载页面。在这个页面中,我想包含类似

的内容
<script>
$.include('javascriptfile.js', function() {alert('do something with results of this file to an already existing div element');};
</script>

$ .include是一个jquery插件,我发现它模仿$ .load并添加了一些智能。经过测试可以在FF上使用,但不能在Chrome中使用,或者最重要的是在Safari中使用。

永远不会显示警报。 FireBug从未显示即使正在加载的javascript。如果我在$ .include之前发出警报,我仍然没有看到任何东西。

我尝试了一个onclick / ontap事件,然后运行包含在head标签中的代码,没有运气。

编辑:我正在使用jQT的r148版本。在相信这个版本之前,这是有效的。

2 个答案:

答案 0 :(得分:0)

您是否尝试使用以下两种方法之一添加javascript文件:

静态方式:

<script type="text/javascript">

function staticLoadScript(url){
   document.write('<script src="', url, '" type="text/JavaScript"><\/script>');
}

staticLoadScript("javascriptfile.js");
modifyDivFn(processFnInFile());

</script>

动态方式:

<script type="text/javascript">

function dhtmlLoadScript(url){
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

onload = function(){
   dhtmlLoadScript("javascriptfile.js");
   modifyDivFn(processFnInFile());
}

</script>

在include之后你可以调用一个执行你想要的处理的函数(即processFnInFile()),结果将被传递给modifyDivFn(并修改你想要的div。)你可以在一个函数中执行此操作,只需要说明了这个想法。


来源:Dynamically Loading Javascript Files

答案 1 :(得分:0)

好的Geries,我感谢你的帮助,但最终答案需要彻底重新思考我如何使用JQTouch。解决方案是将所有内容移动到onclick事件,并使所有href链接到#。这可能就是你所说的Geries。

在onclick函数中,我通过jquery通过我自己的GET进行逻辑,预加载,页面加载,然后使用公共对象jQT.goTo(div,transition)。这似乎可以解决WebKit漏洞或我遇到的任何问题,现在可以看看FireFox,Chrome,Safari,iPhone以及它们。

我确实遇到了JQT的一些动画问题,但我认为这些是已知的问题,我希望Stark和JQTouch的团伙正在努力。