【问题标题】:Chome extension prevents <select> elements from expandingChrome 扩展阻止 <select> 元素扩展
【发布时间】:2018-04-12 06:13:40
【问题描述】:

我开发了一个非常简单的 Chome 扩展,它公开了一个工具栏按钮。单击按钮时,页面内容使用XMLHttpRequest POST 到服务器,然后 元素的innerHtml 被服务器返回的新内容替换。

由于某种原因,这会阻止 元素展开。我已经通过禁用使 then 再次工作的扩展来验证这一点。

任何想法为什么会发生这种情况以及如何解决它?代码如下供参考:

chrome.extension.onMessage.addListener(
function (request, sender, sendResponse) {
    if (request.msg == "get_content") {
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    document.getElementsByTagName('html')[0].innerHTML =
                       xmlhttp.responseText;
                } else {
                    alert('Cannot reach russiangram.com');
                }
            }
        }
        xmlhttp.open("POST", "https://russiangram.com/translate/Default.aspx", true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send(document.getElementsByTagName('html')[0].innerHTML);
        sendResponse({ data: 'success' });
    }
});

【问题讨论】:

    标签: javascript html google-chrome-extension


    【解决方案1】:

    我猜我会说你在哪里替换文档 HTML 标记的内容,你可能还替换了最初在该页面上的任何关联的 JS/CSS 引用。

    也许作为一个测试而不是替换 HTML 标记的内容,向页面添加一个新的 DIV 元素或其他东西,然后将其作为目标。希望这可以让您了解选择功能是否仍然有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2021-11-01
      • 2014-12-29
      • 1970-01-01
      • 2012-07-08
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多