在jQuery Mobile中,我可以使用div
将“移动网页”定义为data-role=page
。
这些可以存储在其他HTML文件中,并临时注入主HTML页面。
在这样的div
中,我可以添加script
标记,该脚本也会被注入我的主页。
该脚本在我的DOM中不会显示为script
标记,而是似乎是内联注入的,因此它不会以标准方式出现在调试器中,例如FireBug的脚本面板。
有没有人找到调试这些脚本的正常方法(希望在FF或Chrome中)?
修改
只是澄清一下 - “其他”页面中的脚本标记不是内联脚本。这是一个:
<div data-role="page" id="some_id">
<script type="text/javascript" src="MyScript.js"></script>
...
</div>
但是,它作为内联脚本注入DOM。
BTW - 如果我把脚本标签放在HTML的HEAD中,它根本就没有加载。
编辑2:
更多说明:
我正在编写一个框架,其中“扩展模块”将插入客户站点并决定加载哪个模块(即带有脚本的附加“页面”)是运行时决策。因此,我的主页中没有先验知识要加载哪些脚本,并且必须将加载延迟到“模块加载”时间。
我的最终目标是允许“模块”开发人员调试他们的脚本。为此,我想要一个解决方案,其中引用脚本文件在FireBug / ChromeDevTools中可用,就像任何其他脚本一样。
似乎是标准的jquery(核心,非移动)行为从AJAX加载的html中删除脚本标记并将其内联,而不是将脚本标记留在那里并让浏览器正常加载它。
我并不完全理解这背后的动机,它确实妨碍了我的调试选项: - (
顺便说一句,我使用的是jQuery 1.5.2(与1.5.1相同的行为)和jQuery Mobile alpha 4(与3相同)答案 0 :(得分:0)
脚本随时附加到文档中,因此萤火虫通常不会看到它。
有一个加载项处理调试动态加载的脚本。 Inline Code Finder for Firebug
但最后一次发布是在2009年。如果您修改支持的版本,可能会使用它。
顺便说一句。我相信你不应该使用jquery mobile的这个功能。它可以为包含大量内联脚本块等的大型项目提供基本支持。
您应该在每个子页面上包含脚本并使其以这种方式工作
或
如果需要.getScript()
,则需要动态加载脚本,如果它们太大而无法一直包含在内。
[编辑]
是的,如果您将脚本放在头部,它将不会被加载。我再说一遍:将脚本放在每个页面的头部并绑定右页的pageshow
而不是正常的document.ready