繁体   English   中英

CRM 2011:使用javascript将值传递到IFRAME / Web资源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM