我在页面上使用了 WebResource,但出现错误对象不支持 Javascript 中的属性或方法“setSrc”
你能帮帮我吗
我的实际代码是这样的
function getImage()
{
var entityId = Xrm.Page.data.entity.getId();
var profilePictureElement = Xrm.Page.getControl("WebResource_ProfilePicture");
if (entityId) {
var oDataQuery = getServerUrl() + "/XRMServices/2011/OrganizationData.svc" +
"/AnnotationSet?$top=1&$select=AnnotationId,DocumentBody,MimeType&" +
"$orderby=ModifiedOn desc&$filter=ObjectId/Id eq guid'" + entityId +
"' and IsDocument eq true and Subject eq 'Profile Picture'" +
" and startswith(MimeType,'image/') ";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: oDataQuery,
beforeSend: function (request) { request.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, request) {
if (data.d.results.length > 0) {
var mimeType = data.d.results[0].MimeType;
var body = data.d.results[0].DocumentBody;
// set src attribute of default profile picture web resource.
// here we use DataURI schema which has 32kb limit in IE8 and doesn't support IE <= 7.
profilePictureElement.setSrc("data:" + mimeType + ";base64," + body);
}
},
error: function (request, status, exception) { }
});
}
}
function getServerUrl()
{
var serverUrl = Xrm.Page.context.getServerUrl();
// trim trailing forward slash in url
return serverUrl.replace(/\/*$/, "");
}
最佳答案
看起来现在方法 getSrc
和 setSrc
只能在引用 HTML 内容时用于 Web 资源。
如果 Web 资源是图片,crm 将使用 img
标签来显示图片。
如果您想让该代码正常工作,您需要检索 img
元素并手动分配 src
属性:
代替
profilePictureElement.setSrc("data:" + mimeType + ";base64," + body);
你需要写
var profilePicture = document.getElementById("WebResource_ProfilePicture");
profilePicture.setAttribute("src","data:" + mimeType + ";base64," + body);
注意:这是一个不受支持的自定义
关于javascript - 在 CRM 2011 的 Web 资源中出现错误对象不支持属性或方法 'setSrc',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15847796/