动态CRM 2011网页资源不显示在Chrome浏览器
Dynamics CRM 2011 web resource not showing in Chrome?
我已经实现了这个解决方案:http://crm2011lookuppreview.codeplex.com/
它在Outlook和IE上工作得很好,但在Chrome上根本看不到预览。我尝试将jQuery .show()命令更改为.style。Display = "block"但是没有。下面是解决方案中包含的JavaScript,它负责构建HTML并显示它。似乎Chrome根本不加载网络资源,因为至少在IE上,资源的轮廓是可见的,然后数据来填充轮廓。在Chrome中,只有空白。但它可能是如何Chrome渲染,我不知道…
//LookupPreviewScript.js
///<reference path="XrmPage-vsdoc.js"/>
var XrmPage;
var popWindow;
var _VerticalLayout = "V";
var _HorizontalLayout = "H";
var _ZLayout = "Z";
var _NLayout = "N";
function LoadLookPreviewDelayed(webResourceId, lookupAttributeId, columnList, layout)
{
myFn = function(){LoadLookPreview(webResourceId, lookupAttributeId, columnList, layout);}
setTimeout(myFn, 2000);
Xrm.Page.getAttribute(lookupAttributeId.toLowerCase()).addOnChange(myFn);
}
function FormHTMLTable(divTag, controlSet, layout)
{
var str = "";
if(layout == _VerticalLayout)
{
str = "<table><tbody>";
for(var k=0; k < controlSet.length; k++){
str += "<tr>";
str += "<td class='headerCss'>" + controlSet[k].attributeDisplayName + "</td>";
str += "<td>" + controlSet[k].attributeValue + "</td>";
str += "</tr>";
}
str += "</tbody></table>";
}
else if(layout == _ZLayout)
{
str = '<table>';
str += '<tbody>';
for (var j = 0; j < controlSet.length; j++) {
var index = j + 1;
str += "<tr>"
str += "<td class='headerCss'>" + controlSet[j].attributeDisplayName + "</td>";
str += "<td>" + controlSet[j].attributeValue + "</td>";
str += "<td class='seperator'></td>";
if(index < controlSet.length)
{
str += "<td class='headerCss'>" + controlSet[index].attributeDisplayName + "</td>";
str += "<td>" + controlSet[index].attributeValue + "</td>";
}
str += "</tr>"
j++;
}
str += '</tbody>'
str += '</table>';
}
else if(layout == _NLayout)
{
str = '<table>';
str += '<tbody>';
var half = Math.round(controlSet.length / 2)
for (var j = 0; j < controlSet.length; j++) {
var index = j + half;
if (j < half) {
str += "<tr>"
str += "<td class='headerCss'>" + controlSet[j].attributeDisplayName + "</td>";
str += "<td>" + controlSet[j].attributeValue + "</td>";
str += "<td class='seperator'></td>";
if (index < controlSet.length) {
str += "<td class='headerCss'>" + controlSet[index].attributeDisplayName + "</td>";
str += "<td>" + controlSet[index].attributeValue + "</td>";
}
str += "</tr>"
}
}
str += '</tbody>'
str += '</table>';
}
else
{
str = "<table><thead><tr>";
for(var k=0; k < controlSet.length; k++){
str += "<th>" + controlSet[k].attributeDisplayName + "</th>";
}
str += "</tr></thead><tbody><tr>";
for (var i = 0; i < controlSet.length; i++){
str += "<td>" + controlSet[i].attributeValue + "</td>";
}
str += "</tr></tbody></table>";
}
divTag.innerHTML = str;
$(divTag).slideDown(1000);
}
function LoadLookPreview(webResourceId, lookupAttributeId, columnList, layout)
{
var divTag;
var webResource = Xrm.Page.getControl(webResourceId);
var columnSet = new Array();
var columnHeaders = new Array();
var controlSet = new Array();
successCallBack = function (attributeCollection) {
for(var k=0; k < controlSet.length; k++)
{
for (var i = 0; i < attributeCollection.length; i++)
{
if(attributeCollection[i].attributeName == controlSet[k].attributeLogicalName)
{
controlSet[k].attributeValue = attributeCollection[i].attributeValue;
break;
}
}
}
FormHTMLTable(divTag, controlSet, layout);
};
errorCallBack = function (error) {
divTag.innerHTML = "<span class='error'>" + error.message + "</span>";
$(divTag).slideDown(500);
};
if(webResource == null)
{
alert('No WebResource found with Id = ' + webResourceId);
}
else
{
divTag = document.getElementById(webResourceId).contentWindow.document.getElementById('lookupDIV');
if(divTag != null)
{
divTag.display = "none";
var columns = columnList.split('|');
for(var i = 0 ; i < columns.length; i++)
{
var s = columns[i].split('#');
var _control = new Object();
_control.attributeDisplayName = s[0];
_control.attributeLogicalName = s[1].toLowerCase().replace(/^'s+|'s+$/g, '')
_control.attributeValue = '';
controlSet.push(_control);
columnSet.push(s[1].toLowerCase().replace(/^'s+|'s+$/g, ''));
}
if(Xrm.Page.getAttribute(lookupAttributeId.toLowerCase()) != null && Xrm.Page.getAttribute(lookupAttributeId.toLowerCase()).getValue() != null)
{
var id = Xrm.Page.getAttribute(lookupAttributeId).getValue()[0].id;
var entityName = Xrm.Page.getAttribute(lookupAttributeId).getValue()[0].entityType;
SDK.RetrieveData.RetrieveRequestAsync(entityName, id, columnSet, successCallBack, errorCallBack);
}
else
{
FormHTMLTable(divTag, controlSet, layout);
}
}
else
{
alert("Error in Loading Web Resource (DIV is NULL)")
}
}
}
我猜这是一些简单的div如何或何时渲染,但我不是很精通交叉兼容性。
这个问题似乎与Chrome和Dynamics CRM 2011 SDK功能SDK. retrievedata不兼容。我刚刚打开了解决方案中包含的SDK.RetrieveData.js文件,并用此URL指定的代码替换了它,现在她工作得很好!
http://crm2011lookuppreview.codeplex.com/discussions/431830相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在firefox和chrome中的左侧显示iframe滚动条
- Chrome(webkit?)无法在幻灯片中正确显示图像
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 无法在Chrome(打包)应用程序上检测到ESC按钮(全屏显示时)
- Chrome和Firefox之间的Wordpress显示差异
- 向下滚动时隐藏菜单,向上滚动时显示,适用于Chrome,不适用于Safari(手机)
- Chrome 开发工具:如何计算加载弹出窗口并将其显示在页面上所需的总时间
- 在Chrome扩展程序中,是否可以截屏并在弹出窗口中显示屏幕
- 一系列下拉菜单,由jQuery提供支持,隐藏和显示,但不在Chrome中
- 显示chrome.storage中的所有内容
- 仅当标签页处于非活动状态时,才会显示 Chrome 桌面通知
- 未显示 Chrome 扩展程序浏览器操作
- 如何请求在popup.html中显示chrome扩展的清单版本号
- 如何选择性地显示Chrome扩展'的工具栏图标
- 超链接图像不显示Chrome扩展
- Ubermenu子菜单不显示Chrome/Safari
- Javascript:总是显示Chrome地址栏
- history.back()显示Chrome的问题