链接在chrome扩展中不工作后,我把它们移动到不同的位置
Links not working in chrome-extension after I've moved them to a different position
我的google-chrome-extension将某些div移动到页面加载后的不同位置:
var div = $('div.joinContributors').first();
if (div != null) {
div.insertAfter($('div.filmRateBox').first());
}
和存储在该div中的链接不再工作。当我使用Chrome开发人员工具检查html代码时,我可以看到:
<li><a class="link" href="link_to_another_subpage" rel="nofollow">name_of_the_link</a></li>
但是当我创建新的链接并添加到那里时,一切都很正常:
$("<a>", {"href": "link_to_another_subpage", "text": "name_of_the_link"}).insertAfter($('div.filmRateBox').first());
知道为什么他们不工作吗?
由于内容具有正常链接,默认情况下必须正确处理这些链接,因此最有可能的原因是该站点使用了自定义的单击事件处理程序,其中包含父节点检查。
一个简单的解决方案是插入HTML以重新创建精确的布局,但剥离所有事件处理程序:
var $div = $('div.joinContributors').first();
if ($div.length) {
$('div.filmRateBox').first().after($div.prop('outerHTML'));
$div.remove();
}
请注意,document.querySelector
比$('...').first()
快得多,因为它不构建整个集合。
另一个解决方案,相当不稳定,将删除事件处理程序,但它只适用于通过jQuery._data(element, 'events')
或.onxxxxx
DOM属性访问的jQuery事件。
相关文章:
- 在不移动元件的情况下从相对位置更改为固定位置
- 如何在鼠标悬停时将对象从起始位置移动到结束位置,然后在鼠标悬停后再次移动
- 将插入符号位置移动到ContentEditable<DIV>
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- float's未返回到移动视图结束后的位置
- 将javascript数组中的项移动到特定位置的有效方法
- 如何将节点移动到所需位置
- Photoshop脚本:将图像移动到位置x,y
- 在鼠标上触发鼠标移动'的当前位置
- 固定图像滚动移动位置
- Javascript滚动和移动位置
- 如何确保按钮点击均匀移动位置
- 当地图移动时,必应地图InfoBox会在FireFox和Chrome中移动位置
- 当尝试按下鼠标选择所有对象时,对象会自动移动位置(Fabric.JS)
- 在必应地图上获取移动位置
- 精灵图像的随机移动位置
- 如何将多个标记添加到移动位置谷歌地图,Javascript
- 创建用于移动位置的常量而不是变量
- 如何根据鼠标移动/位置应用效果
- MediaWiki我如何得到[折叠]链接不移动位置与文本