我已按以下方式定义了一个网络资源:
function setIframe_OnLoad() {
var iFrame = Xrm.Page.ui.controls.get('IFRAME_docmgmt');
var url = iFrame.getSrc();
if (url.indexOf("blank") != -1) {
setiFrameUrl();
}
}
function setiFrameUrl() {
debugger;
var url = 'http://www.google.com';
Xrm.Page.getControl('IFRAME_docmgmt').setSrc(url);
}
我已将名为docmgmt
的iframe的网址配置为about:blank
。我将iframe的OnReadyStateComplete
事件连接到setIframe_OnLoad
函数。当我加载我的CRM 2013表单时,调试器行被点击,我可以单步执行,看到Xrm.Page.ui.controls.get('IFRAME_docmgmt').getSrc()
值确实更改为http://www.google.com
。函数完成后,页面将重新加载。我不知道为什么。重新加载时,iframe再次设置为about:blank
。有没有人在Dynamics CRM 2013中使用javascript以编程方式设置iFrame URL?
答案 0 :(得分:0)
www.google.com无法正常工作,因为下一个错误:
拒绝展示' https://www.google.com.bo/?gws_rd=cr&ei=XZKQU6_YA6HNsQTkhIKIBA'在一个框架中因为它设置了X-Frame-Options' ' SAMEORIGIN'。更多参考资料here。
因此,当起始页面设置为about:blank时,它仍然在 .setSrc 函数之后。 实际上有很多网站不允许将他们的网页用作iFrame。
我使用 http://www.bing.com 编写了相同的代码,但它工作得非常好:)