通过 Google Chrome 使用 javascript 传递参数

Posted

技术标签:

【中文标题】通过 Google Chrome 使用 javascript 传递参数【英文标题】:Passing parameter with javascript through Google Chrome 【发布时间】:2012-07-25 05:05:35 【问题描述】:

所以我一直在根据此处列出的一个小部件工作:http://php-drops.blogspot.com/2011/04/creating-widget-with-javascript-and-php.html

用户 我正在尝试创建小部件的预览功能,以便用户可以检查它的外观。我这样做的方式是将“复制和粘贴”代码部分传递给“预览”页面可以抓取和回显的参数。这在 Firefox 和 ie 中运行良好,但在 Chrome 中显示空白页。

当我在 Chrome 的空白页面上查看源代码时,源代码与 firefox 和 ie 中的相同。当我将“查看页面源”中的代码复制并粘贴到新页面上时,它会在 Chrome 中完美显示。

谁能指出我应该寻找的正确方向?我是否通过在参数中传递 javascript 来打破某种规则——firefox 和 ie 不关心但 Chrome 关心的规则?

这是我正在尝试做的简化版本:

http://imaginarydomain.com/widget/example.php?widget_script=%3Cscript+type%3D%22text%2Fjavascript%22%3Edocument.write('hello%20world')%3C%2Fscript%3E

在 chrome 上查看页面源代码会显示:

         <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
         <html><head></head><body><script type="text/javascript">document.write('hello world')</script>
        </body></html>

但是页面会是空白的。

非常感谢!

【问题讨论】:

您可能需要在编码之前通过将' 更改为\' 来转义单引号。 【参考方案1】:

这可能是由于 Chrome 的 XSS 攻击过滤器导致 javascript 无法通过。

当我检查了 chrome 上的 javascript 控制台时,我得到了

“拒绝执行 JavaScript 脚本。在请求中找到脚本的源代码。”

在快速浏览了如何解决此问题后,我发现没有一个选项非常有吸引力。

【讨论】:

以上是关于通过 Google Chrome 使用 javascript 传递参数的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 jquery 访问通过 google chrome 内容脚本注入的 iframe 的内容

如何使用 Java + ChromeDriver 在 AWS Lambda 中运行 Google Chrome 进行 Selenium 测试

谷歌取消 Chrome 争议特性;Java 11 / JDK 11 正式发布

google chrome使用的插件不受支持怎么办?

我可以使用Google Chrome扩展程序阻止警报()

在无头 debian 系统上通过 Selenium 启动 google-chrome