1

我正在尝试创建一个包含以下功能的 chrome 扩展:

1 当用户访问某个域的页面时,此扩展程序将删除页面中的一些域。

2 检查所有图片的尺寸,如果其中一张尺寸大于指定尺寸,则该图片将设置为指定尺寸,当用户点击它时,该图片将调整为原来的尺寸。

现在这就是我所做的:

"content_scripts": [
    {
        "matches": ["http://*.xx.com/*"],
        "js": ["res/js/jquery-2.0.3.min.js", "res/js/inject.js"],
        "run_at": "document_end"
    }
]

注入.js:

$(document).ready(function () {
    $("xxx").remove();
    $("img").each(....);
});

但是我遇到了一些问题:

1 jquery库是在本地引用的,有没有办法从CDN源加载jquery?

2 页面完全加载需要很长时间,这意味着要删除的内容将保持很长时间可见。

3 页面使用类似twitter的布局,当用户滚动页面时,会加载更多内容。所以问题来了。

inject.js将在页面加载完成后运行,所有已加载的图像都将被处理。但是当加载更多内容时,新加载的图像将不会被处理。

所以我想知道是否有一些element_rendered我可以捕捉到的事件?如果是,我可以像这样完成我的工作:

xxx.events.addListener('element_rendered',function(ele){
    if(shouldRemvoed(ele)){
        //remvoe it.
    } else if(isImg){
        //check size......
    }
});

这是可能的,还是有替代方法来完成我的工作?

4

1 回答 1

0

1 jquery库是在本地引用的,有没有办法从CDN源加载jquery?

不,不在 chrome 扩展中

2 页面加载完成需要很长时间,这意味着要删除的内容将保持很长时间可见。

3 页面采用类似推特的布局,当用户滚动页面时,会加载更多内容。所以问题来了。

您可以使用MutationObserver跟踪 DOM 上的更改。

于 2013-10-11T11:41:20.473 回答