我已经看到了一些情况下发送GET
参数定制WebResources时不好好工作。不知何故,它可能会混淆CRM内核中的内部URL重写。
正常情况下,它显示为错误500
而不是您的预期网页内容。正如我所提到的,原因是您的GET
参数与标准的CRM URL重写机制混淆。当您添加自定义参数时,URL不再与重写规则匹配,并且CRM爆炸错误500
。
在这种情况下,您可以使用hash-bang
字符串。可以将它们传递给URL,但前缀为#!
符号。这个技巧使得它们在服务器端操作中不可见,因为URL中#
符号后面的所有内容都被认为是指页面中的锚(本地链接),这就是为什么它被正常的服务器端代码跳过的原因。
但是你可以在客户端解码它。
例如,您的URL可能看起来像下面:
xpto_/ShowDataParams.htm#!name1=value1&name2=value2
你也可以使用下面的函数从您的网址让你的网页资源中的名称 - 值对:
function ExtractParameters() {
var url = window.location.href;
var pairs = {};
var hashes = url.slice(url.indexOf('#!') + 2).split('&');
for(var i = 0; i < hashes.length; i++) {
var hash = hashes[i].split('=');
if(hash.length > 1) {
pairs[hash[0]] = hash[1];
} else {
pairs[hash[0]] = null;
}
}
return pairs;
}
旁注:没有必要使用#!
#
很重要,但我宁愿为了冗长的目的而具有更复杂的符号组合,所以它不会与其他任何东西混合。
我有点失落 - 你已经有了JavaScript参数。如果你的意思是你想访问该函数之外的参数对象,那么只需声明它并将其填充到函数之外,这样它就具有全局作用域。 – Archer