通过 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 测试