我在页面上使用了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(/\/*$/, "");
}
整篇文章
答案 0 :(得分:1)
现在看来,只有在引用HTML内容时,方法getSrc
和setSrc
才能用于Web资源。
如果网络资源是图片,则crm将使用img
标记来显示图片。
如果您想使该代码正常工作,您需要检索img
元素并手动分配src
属性:
profilePictureElement.setSrc("data:" + mimeType + ";base64," + body);
你需要写
var profilePicture = document.getElementById("WebResource_ProfilePicture");
profilePicture.setAttribute("src","data:" + mimeType + ";base64," + body);
注意:这是不受支持的自定义