用jquery html()异步插入页面导致的问题

YO-JLIFE 发布于 2016/08/30 16:49
阅读 491
收藏 0

异步获取到网页内容(data), 然后使用 $('#x').html(data)的形式插入到当前页面中。
假设data中存在sysUser.js引用,此时该JS的加载与我们正常网页中的不一样,通过chrome devtools可以看到:

这个请求的type是xhr,而正常引入的type为script。而且当我们在devtools查看sources时,我们是
看不到sysUser.js这个文件的,这也导致我们不能通过devtools直接修改js代码来进行调试。

请问有没人遇到过这个问题?或者是有更好的异步加载网页内容的形式也可以介绍下。
THX!

加载中
2
wuyiw
wuyiw

三个方法,

1, 在sysUser.js末尾加一行

//# sourceURL=sysUser.js



这样就能在devtools里面找到这个js了.(找不到可以按(ctrl/cmd)+p查找)

2, 在sysUser.js里面随便输出点什么, 比如console.log(1);然后在控制台里打印的1右边有个VMxxxx:x之类的链接, 点击就能进入sysUser.js的内容了.

3, 在需要断点的地方加一行debugger, 会让浏览器在这里断点(在打开devtools的前提下)

看你喜欢哪个方法就用哪个了.

蓝水晶飞机
蓝水晶飞机
都挺好的方法啊!赞
1
wuyiw
wuyiw

鉴于以上方法都要修改源文件, 再提供一些不用改源文件的方法:

1, 利用dom断点, 比如说你知道它会改某个元素的节点/属性或者删除等:


2, 利用事件监听列表, 比如说你知道它在某个元素上监听某个事件:


3, 利用它使用的底层/库方法, 比如说你知道它要调用jquery的show: 


在查看一些网站如何实现一些效果时, 这些方法比较实用.

YO-JLIFE
YO-JLIFE
好的, 学到了, 谢谢
0
明月惊鹊
明月惊鹊
还有一个“猥琐”的办法:用fiddler 来拦截这个请求并且自动响应,然后修改定向到一个本地文件去,你爱咋改这个文件都可以,这样不需要在devtool里改代码了。
返回顶部
顶部