插件表单已取消

时间:2017-03-10 15:19:17

标签: google-chrome google-chrome-extension

我开发了一个内部谷歌Chrome浏览器插件,它将提取页面的HTML并通过表单发布到服务器端页面。

从最新的Chrome版本(56.0.2924.87)开始,插件停止运行。通过Google开发人员工具查看网络信息时(右键单击 - >检查弹出窗口)。我看到事件被取消了。

Network Data

通过搜索Google,我找到了Google事件日志。虽然我无法完全理解这些信息,但我看到了以下数据 Event Log Data

我注意到的一件事是它说" MAIN_FRAME_DEPRECATED"在" load_flags"部分。我无法在Google上找到有关此内容的任何信息。

这是提交表单的插件中的代码。

  d = document;
  var f = d.createElement('form');
  f.action = 'https://***.com/index.cfm?***';
  f.method = 'post';
  var i = d.createElement('input');
  i.type = 'hidden';
  i.name = 'Filecontent';
  i.value = request.source;
  f.appendChild(i);
  d.body.appendChild(f);
  f.submit();

Google有否取消表单帖子?我最初通过服务器端页面做了一些调试,我可以确认数据正在提交。

1 个答案:

答案 0 :(得分:0)

感谢wOxxOm,我找到了正确的答案。我将上面的表单帖子切换为XMLhttprequest。以下内容通过同步HTTP请求执行相同的功能。

var xmlhttp = new XMLHttpRequest();
var url ="https://***/index.cfm?***";
var params='Filecontent='+encodeURIComponent(request.source);
xmlhttp.open("POST",url,false);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(params);
d = document;
d.body.innerHTML = xmlhttp.responseText;

到目前为止,我发现切换到此代码的唯一警告是,下一页上的所有URL都必须是绝对的。任何相对链接都不会运行corect。这也适用于使用//而非https://http://的链接。