首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用easyXDM修改提供程序页的内容

使用easyXDM修改提供程序页的内容
EN

Stack Overflow用户
提问于 2012-01-13 13:31:02
回答 1查看 1.1K关注 0票数 1

我正在尝试使用easyXDM javascript库来实现一些跨域攻击。

一些关于easyXDM的背景。我们有两个角色:

  1. 提供程序,它提供要由其他人调用的函数。
  2. 使用者,它调用提供者提供的函数。

这项规定如下:

代码语言:javascript
复制
The consumer passes the content as parameter and calls the function through RPC. 
The provider receives the request and use the content to modify its page.

在这里,修改其页面意味着尝试修改DOM结构或DOM节点中的内容。

provider端的代码,一旦使用者请求,它将修改其页面内容。

代码语言:javascript
复制
var provider = new easyXDM.Rpc({}, {
    local: {
        modifyContent: {
            method: function(content){
                // modify the content on my page
            }
        }
    }
});

使用者端,它将执行RPC请求提供程序更改其页面。

代码语言:javascript
复制
    var consumer = new easyXDM.Rpc({
        remote: "remoteUrl"
    }, {
        remote: {
            modifyContent: {}
        }
    });
    //perform RPC and ask the provider to the modify its content
    consumer.modifyContent("This is some content that should be used to modify your content");

所有事情都进行得很好,但当提供者试图使用内容修改其页面时除外。

不会引发错误或警告。但是页面不会像预期的那样改变。

此外,我只运行“更改内容”代码(如复制和粘贴,运行在Firebug控制台或Chrome控制台),它将工作。

以前有人使用过easyXDM并遇到过这个问题吗?

PS:easyXDM似乎不是这里的标签。如果你同意的话,请帮我补充一下。

EN

回答 1

Stack Overflow用户

发布于 2012-11-12 21:19:04

我遇到了同样的问题,问题是我不明白easyXDM的RPC功能是如何工作的。

对我来说,问题在于我将子元素iframe添加到父服务器,然后使用我添加到页面的iframe的url调用easyXDM.Rpc()。当我从父级向子节点发送消息时,子节点将很好地接收消息(并通过控制台记录正确的消息),但是我无法更改子服务器中的任何本地内容或全局变量。我不明白的是,当在父程序中创建一个新的RPC客户机时,该工具会自动创建一个iframe。我以为它只会使用我在页面上画的iframe。因此,我从一个iframe (默认情况下是在屏幕外绘制)记录日志,并与一个没有连接到RPC调用的iframe交互。

为了解决这个问题,我删除了添加到页面中的iframe,并使用RPC配置的"props“属性使iframe在屏幕上可见。一旦我这么做了,一切都很顺利。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8851355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档