Chrome扩展:将javascript注入网页以执行ajax请求?

发布于 2024-11-26 06:16:36 字数 333 浏览 0 评论 0原文

我正在开发一个 Google Chrome 扩展,当用户登录 Facebook 时,它会添加一个类似 Windows Live Messenger 的通知,因此我需要执行 ajax 请求来获取一些用户信息(如个人资料图片、id 中的全名等) 那么,由于我无法直接向 Facebook 执行 ajax 请求(如果我错了,请纠正我),是否可以将 Javascript 文件注入 facebook 页面,然后从那里执行 ajax 请求?或者由于扩展在另一个环境中运行,这会被阻止(或者是吗?如果我误解了这一点,请再次纠正我!) 我目前没有任何代码可以显示,但我只是想知道在开始编码之前是否可能,或者我是否需要其他方法来解决这个问题。

提前致谢

I'm developing a Google Chrome extension that adds a Windows Live Messenger-like notification when a user logs on Facebook and thus I need to perform a ajax request to grab some user information (like profile picture, full name from id etc.)
So since I can't perform a ajax request to Facebook directly (Correct me if I'm wrong), is it possible to inject a Javascript file into the facebook page and then execute the ajax request from there? Or will this be blocked since the extensions run in another environment (Or do they? Once again correct me if I misunderstood this!)
I don't have any code to show at the moment, but I was just wondering if it's possible before I start the coding or if I need some other way around this.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小红帽 2024-12-03 06:16:36

要将其注入到 head 中,您可以为其编写一个函数

function exec(fn) {
    var script = document.createElement('script');
    script.setAttribute("type", "application/javascript");
    script.textContent = '(' + fn + ')();';
    document.body.appendChild(script); // run the script
    document.body.removeChild(script); // clean up
}

并在扩展中使用它,就像

exec(function() {
    $("body").load('hacked.html');
});

取自 这个答案

To inject it to head, you can write a function for it

function exec(fn) {
    var script = document.createElement('script');
    script.setAttribute("type", "application/javascript");
    script.textContent = '(' + fn + ')();';
    document.body.appendChild(script); // run the script
    document.body.removeChild(script); // clean up
}

and use it in your extension like

exec(function() {
    $("body").load('hacked.html');
});

taken from this answer

冰之心 2024-12-03 06:16:36

Chrome 扩展程序可以向任何页面发出 ajax 请求。有关详细信息,请参阅文档

Chrome extensions are allowed to make ajax requests to any page. See docs for details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文