簡體   English   中英

如何將 CRM Dynamics 2015 表單數據(歸檔值)傳遞到具有 JavaScript 功能的 HTML 頁面

[英]How to pass CRM Dynamics 2015 Form data(filed values) to an HTML page which has JavaScript functions

我最近獲得了一個用於網絡電話網絡客戶端的 JavaScript API。 我想從 CRM 啟動這個客戶端並將我的 CRM 表單數據傳遞給它,我創建了一個自定義功能區按鈕,該按鈕必須調用該 HTML 頁面並將相關數據傳遞給它。

功能區按鈕應該啟動網絡電話的 URL,但同時將參數傳遞給 HTML 頁面中的 JavaScript 函數,我是在功能區上使用 JavaScript 操作還是使用 URL 操作,如果我使用 URL 我該怎么做將數據傳遞給 JScript 函數?

為了更清楚地說明這一點,我在 CRM 中有一個 Contact 實體,它有一個手機號碼,我想將它作為參數傳遞給 HTML 頁面,該頁面具有我想用於網絡電話客戶端的 JavaScript 函數

如果您使用 url 調用外部頁面,則可以在調用頁面后將參數附加為“GET”:

page.html?phone=123123

那么您將能夠從您的 html 頁面訪問它,因為其他帖子指出獲取 url 參數 jquery 或如何在 js 中獲取查詢字符串值,您應該沒問題。 此外,如果您將其用作頁面中的嵌入式 Web 資源,您將能夠通過 windows.parent.Xrm 訪問表單屬性

將下面的行添加到 html 的 head 標簽:

    <script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>

還要添加此代碼以在加載 html 時運行:

 <script src="OnLoadHtml.js" type="text/javascript"></script>

在 javascript OnLoadHtml.js 中添加以下代碼:

document.onreadystatechange = function () {
    //When document is ready
    if (document.readyState == "complete") {
        //Get sent arguments in url
        var arguments = GetQueryArgument();
        //Decode encoded arguments
        var decodedArguments = decodeURIComponent(arguments)
    }
}

//Gets query passed argument
function GetQueryArgument()
{
    /*Get the any query string parameters and load them
    into the vals array*/
    var result = "";
    var vals = new Array();
    if (location.search != "") {
        vals = location.search.substr(1).split("&");
        for (var i in vals) {
            vals[i] = vals[i].replace(/\+/g, " ").split("=");
        }
        //look for the parameter named 'data'
        var found = false;
        for (var i in vals) {
            if (vals[i][0].toLowerCase() == "data") {
                result = vals[i][1];
                found = true;
                break;
            }
        }
        if (!found)
        {
            result = "";
        }
    }
    else
    {
        result = "";
    }
    return result;
}

要將結果從 html 返回到 javascript:

將下面的行添加到 html 的 body 標簽中:

    <input id="btnOk" type="button" class="NormalButton" value="OK" onclick="BtnOK_OnClick();">

並在下面為 javascript 部分添加此代碼:

//On ok button pressed
function BtnOK_OnClick() {
    debugger;
    console.log("Ok is clicked");
    var result = GetResult();
    //Control value is not empty
    if (result === "")
    {
        retrun;
    }
    Mscrm.Utilities.setReturnValue(result);
    try
    {
        closeWindow(true); // Close the dialog box
    }
    catch (e)
    {
        console.log("Error happened at closing.");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM