0

这个问题是另一个问题的后续问题,需要提出一个新的帖子,所以如果我提到的事情可能在没有阅读其他问题的情况下不清楚,请原谅我。

使用实用程序waitForKeyElements()时,我遇到了一个问题,其中 adiv包含在同一 URL 中包含的小弹出窗口中。我的扩展程序目前正在Twitter站点上运行,我的意图是div将个人资料页面(例如http://twitter.com/todayshow)中包含的 a 移到div页面上的另一个之上。我这样做是waitForKeyElements()因为使用此实用程序解决了一些加载问题。

但是,在个人资料页面上,您可以单击指向另一个用户名的链接,该链接会弹出一个小窗口(在同一窗口/选项卡内,在同一 URL 上),显示有关他们的一些信息和一些以前的推文。这里的问题是相同的div内容出现在此弹出窗口中,然后移动到弹出窗口后面的主页,它不应该出现在此处。在个人资料页面上,可以通过将false参数插入来停止waitForKeyElements(),但是在非个人资料页面上,仍然可以激活此弹出窗口,然后将其移至主页,因为div我希望将其移至上方个人资料页面仍然存在于此,导致明显的问题。

我想知道是否有办法解决这个问题,因为Chrome 中的错误阻止了我排除这些页面。到目前为止(只是头脑风暴)我在想:

  • div在开始时不存在的页面上,创建一个空的意思false将处理该问题。
  • 以某种方式阻止脚本在给定的 URL 上触发,尽管由于 Twitter 的工作方式,这将不得不监视OnClick()以及我不确定该怎么做的页面 URL(我认为)。
  • 当弹出窗口出现时停止运行,但我几乎不知道从哪里开始。

任何帮助表示赞赏。与此问题相关的任何必要代码都可以在前两个链接中找到,我所面临的问题可以通过快速访问 Twitter 来查看。

编辑:插入false参数时,它在通过 URL 栏直接转到配置文件时起作用,如果您在配置文件上并使用链接访问配置文件,则不会插入脚本并且我的扩展程序失败。所以这也需要解决,或者完全需要一种替代方法。

4

1 回答 1

0

我有一个脑电波,我可以用它insertAfter()来插入<div>我最初在前面移动的,在<div>我最初移动之后。这<div>在弹出窗口中不存在,这意味着在不应该将任何内容移动到背面页面时。

关于上一个问题,我的代码现在很简单:

waitForKeyElements (
    "jQuery selector for div(s) you want to move", // Opposite to what it was.
    moveSelectDivs
);

function moveSelectDivs (jNode) {
     jNode.insertAfter ("APPROPRIATE JQUERY SELECTOR"); // Again, the opposite.
}

这解决了我遇到的问题,我的扩展程序现在工作得很好,但是我会留下这个问题,以防将来有人回来。

于 2013-01-09T03:48:04.163 回答