在dynamic crm中打开web资源并传递参数
- 通过xrm的navigateTo方式实现
// 这里放上官方文档
// pageInput 输入、navigationOptions 导航到页面的选项 以及 成功和失败回调
Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);
// 定义传递给自定义页面的参数
var pageInput = {
pageType: "webresource",
webresourceName: "html/UploadFile.html", // 自定义 HTML 页面路径
data: JSON.stringify({ // 注意这里的键名是 'data'
option: 参数1,
user: 参数2
})
};
// 弹窗选项
var navigationOptions = {
target: 2, // 在对话框中打开
width: 600,
height: 450,
position: 1,// 居中位置,
title: "Upload"
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(res) {
// res 返回参数
if (res) {
console.log(res);
}
},
function error(error) {
console.log("打开对话框时出错:", error);
}
)
自定义页的入参接收以及返回参数
// 解析url中参数
var urlParams = new URLSearchParams(window.location.search);
var dataParam = urlParams.get("data"); // data是上文代码块中的 键名
if (dataParam) {
try {
// 解码 URI 组件并解析 JSON 字符串
var decodedData = decodeURIComponent(dataParam);
var dialogArgs = JSON.parse(decodedData);
var options = dialogArgs.option; // option、user 均为传输数据中的参数名
var user = dialogArgs.user;
} catch (error) {
console.error("解析传递参数失败:", error);
}
}
// 设置返回参数
window.returnValue = "操作成功";
window.close();
具体可参照navigateTo官方文档,以下是官方文档部分属性截图

620

被折叠的 条评论
为什么被折叠?



