javascript - "Inject"现有应用程序中的 JavaScript 用于操作 UI (qwebirc)

标签 javascript irc cross-site

我需要将一些 JavaScript 注入(inject)到现有应用程序中。

应用程序通常嵌入一个 iframe,如下所示:

<html>
<body>
    <iframe src="http://webchat.quakenet.org/" width="647" height="400"></iframe>
</body>
</html>

它是一个基于开源 JavaScript 的 IRC 客户端 http://webchat.quakenet.org/ ( source )。

现在我喜欢注入(inject)一些 JS 来突出显示特殊消息。为此,我已经找到了要覆盖的 HilighterClass

问题是,我该怎么做呢?我猜现代浏览器不允许将 JS 注入(inject)到 iFrame 中,或者?

如果iFrame有问题,也许我可以像他们一样添加客户端:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <base />
  <title>QuakeNet Web IRC (qwebirc)</title>
 ...
  <script type="text/javascript">
    var ui = new qwebirc.ui.Interface("ircui", qwebirc.ui.QUI, {"appTitle":"QuakeNet Web     IRC","dynamicBaseURL":"/dynamic/leibniz/","baseURL":"http://webchat.quakenet.org/","validateNickname":false,"networkServices":["<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6e797e2ded3e7f4d9c2f6f5e5d3c4c0d398c7c3d7ddd3d8d3c298d9c4d1" rel="noreferrer noopener nofollow">[email protected]</a>"],"nickValidation":    {"maxLen":15,"validSubChars":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_[]{}`^\\|0123456789-","validFirstChar":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_[]{}`^\\|","minLen":2},"staticBaseURL":"/static/leibniz/","loginRegex":"^You are now logged in as [^ ]+\\.$","networkName":"QuakeNet"});
  </script>
</head>
<body>
  <div id="ircui">
    <noscript>
      <div id="noscript">Javascript is required to use IRC.</div>
    </noscript>
  </div>
</body>
</html>

要求:

  • 客户端应连接到 quakenet.org 服务器。由于某些跨站点脚本限制,这可能是一个问题。
  • 最好的情况是我的用户不需要其他插件。

最佳答案

你可以像 Privoxy 这样的代理服务器它可以将 JavaScript 注入(inject)到页面中。不幸的是,您的用户必须通过 Privoxy 进行所有浏览,因此这可能不是一个选择。

或者您设置自己的反向代理(例如 Squid)和 change the contents在转发之前。您可以将对 JavaScript 库的请求替换为对您自己的库的调用,该库包含原始 JavaScript 加上您的突出显示代码。

您肯定听说过Greasemonkey ,这是一个浏览器插件,可以做到这一点 - 注入(inject)内容。

关于javascript - "Inject"现有应用程序中的 JavaScript 用于操作 UI (qwebirc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915187/

相关文章:

javascript - 如何获取跨站数据?我正在使用 $.post

javascript - 跨站点 xmlhttp 请求返回状态 0

javascript - 如何在 javascript 文件中使用 Encode.forHtml() ?

JavaScript 动态地将元素附加到主体并向其添加事件监听器

php - 通过 PHP 将多维数组 POST 到服务器

php - IRC 用户名作为论坛用户名

ruby-on-rails - 识别服务-IRC

javascript - 无法从上下文 API 获取状态 setter ,获取 setGlobal 不是函数

javascript - closeOnContentClick 什么都不做 - 使用 Ajax 收集

python 扭曲的简单客户端-服务器通信