2012-07-25 58 views
0

我正在寻找一种方法来捕获在翻滚过程中呈现的对象的HTML。一个例子是:如何在翻滚过程中暂停JavaScript执行?

  1. 将鼠标移到对象来获取弹出
  2. 按下按钮或按键暂停JS(防止鼠标移出触发)
  3. 右击并检查元素得到HTML

有谁知道一种方法来做到这一点?

回答

0

是,<object onmouseover="functionPopup();" onmouseout="functionWrap();">

然后把你的onkeyup事件检测按钮/按键。

诀窍是将functionWrap留在对象上!并使用更新后的指令覆盖此函数functionWrap()(这是由对象的onmouseout引用的)(这适用于非常好的交叉浏览器 - 即使是较老的浏览器,因为它使用传统的事件模型:P)。

快乐调整!

+0

我喜欢这个想法......这不是我正在寻找的东西,但它是最没有侵入性的。谢谢! – Sebastian 2012-07-25 17:19:33

+0

不客气。当我明白这一点时,它让我笑了;)作为奖励,这在防止IE的众所周知的事件处理程序内存泄漏方面也非常有效。 – GitaarLAB 2012-07-25 17:32:42

1

为了您的主要问题,有两种方法可以暂停一个JavaScript线程的执行:

  1. 在调试器中遇到断点
  2. 插入一个alert()到的JavaScript线程和火灾时,它将暂停执行该JavaScript线程,直到警报对话框被解除。

您尚未描述您正在使用的环境以及您可以或不可以在主机页面上进行哪些类型的修改,以便我们更具体地提供建议。

要以不同的方式解决问题,要捕获一些动态插入的HTML,还有其他策略。例如,您可以使用自己的JavaScript(如小书签)将事件处理程序附加到鼠标上。然后,您可以设置一个计时器,该计时器将监视动态生成的HTML何时出现并获取其副本。请记住,JavaScript是单线程的,所以你自己的计时器只会在另一个JavaScript线程等待用户输入时运行,但如果通用模型是它在mouseover上弹出某些东西然后等待其他鼠标事件,那么这可能会工作。

+0

#1不起作用,因为我正在寻找这样做,而不是潜入js。我的想法是,我可以单独离开js代码并在浏览器端执行此操作(这可以防止我必须修改每个项目的代码;此时,我只需删除鼠标悬停处理程序) – Sebastian 2012-07-25 17:18:08

+0

#2不会因为警报弹出窗口阻止访问底层的HTML。当它出现时,我无法在页面上右键单击并检查HTML。 – Sebastian 2012-07-25 17:18:36

+0

感谢您的帮助! – Sebastian 2012-07-25 17:18:51