[英]CRM 2011: Passing values to IFRAME/Web Resource with javascript
我看了几篇不同的文章,它们似乎都暗示着同一件事:
“使用所需的查询参数创建一个网址,并使用此新网址设置目标iFrame,并让该新页面读取请求”
我想知道是否有一种方法可以不使用自定义ASPX页面?
本质上,我想根据表单上的某些值在iFrame或html网络资源中动态显示一些文本。
SDK中没有强制使用ASPX的内容。 实际上,在CRM 2011中,不建议使用它来托管ASP.Net页。
使用基本的HTML页面(在CRM中作为Web资源创建),您可以在HTML文档的HEAD中声明一些JScript(或者更好的是,引用JScript Web资源)。 该JScript可以读取通过iFrame发送的querystring参数,并从那里执行任何所需的操作。
请注意,SDK声明任何自定义查询字符串参数本身都必须经过编码并通过data
参数发送。
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Example page</TITLE>
<META charset=utf-8></HEAD>
<BODY style="BACKGROUND-COLOR: #f6f8fa; MARGIN: 0px; FONT-FAMILY: Segoe UI" contentEditable=true onload="doStuff">
<SCRIPT type=text/jscript>
function doStuff(){
getQueryStrings();
alertOrganisationName();
}
function alertOrganisationName(){
alert(window.parent.Xrm.Page.context.getOrgUniqueName());
}
function getQueryStrings() {
var message = document.getElementById("myOutputArea");
var dataParameterString, querystring;
// get data from querystring
if (window.location.search != "") {
querystring = window.location.search.substr(1).split("&");
for (var i in querystring) {
querystring[i] = querystring[i].replace(/\+/g, " ").split("=");
}
//look for the parameter named 'data'
for (var i in querystring) {
if (querystring[i][0].toLowerCase() == "data") {
dataParameterString = querystring[i][1];
break;
}
}
message.innerText += dataParameterString;
} else {
message.innerText = "No details were specified in the querystring.";
alert("ERROR: " + message.innerText);
}
}
</SCRIPT>
<DIV id="myOutputArea"></DIV>
</BODY></HTML>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.