itpentiuman
小狐狸
小狐狸
  • UID36957
  • 注册日期2011-08-11
  • 最后登录2011-08-11
  • 发帖数1
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3252回复:1

如何用GreaseMonkey脚本获取跨域iframe中的内容?

楼主#
更多 发布于:2011-08-11 14:31
实践证明GM_xmlhttpRequest方法可行,感谢!
----------问题解决完毕分割线--------------

感谢一楼兄弟的回复,能详细说一下用法吗?我重新整理了一下问题。

我在做一个自动抽奖的工具。先是写了一个如下html文件,会自动提交form到某个网址,form的target是一个iframe,这样我就能在当前页面立刻看到抽奖的结果。我希望通过js获取提交后iframe中的内容(即抽奖的结果),问题是因为我是跨域提交,所以获取iframe内容时会报权限错误。尝试用GM脚本,问题依旧.

可直接复制下面代码为test.html,然后点击提交,会发现问题。如果把action改成“test.html”,可发现能正常获取iframe中内容。
<body>
<iframe name="frm_dealer" onload="onIFrameLoaded(this);"></iframe>

<form action="http://www.baidu.com" target="frm_dealer">
    <input type="input" value="某些参数">
    <input type="submit" value="提交">
</form>

<script type="text/javascript">
function onIFrameLoaded(iframe) {
    var doc = iframe.contentWindow.document;
    var html = doc.body.innerHTML;
    if (html != '') {
        alert(html);
    }
}
</script>
</body>
huhuhu
火狐狸
火狐狸
  • UID34430
  • 注册日期2010-11-04
  • 最后登录2013-11-28
  • 发帖数119
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
1楼#
发布于:2011-08-11 14:31
没太看懂你的iframe的source在哪。
如果iframe跨域,GM提供了GM_xmlhttpRequest可以直接接收iframe内容,不知道是不是你要问的,希望能够帮到你。
游客

返回顶部