javascript - 在 CRM 2011 的 Web 资源中出现错误对象不支持属性或方法 'setSrc'

标签 javascript dynamics-crm-2011 dynamics-crm crm onload

我在页面上使用了 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(/\/*$/, "");
}

您可以从这里引用整篇文章http://blogs.msdn.com/b/crm/archive/2011/09/28/displaying-a-contact-s-facebook-picture-in-microsoft-dynamics-crm-2011.aspx?CommentPosted=true#commentmessage

最佳答案

看起来现在方法 getSrcsetSrc 只能在引用 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/

相关文章:

javascript - 打印时如何启用所有禁用

javascript - 为什么上下文菜单有时不起作用?

javascript - Angular2 应用程序在 Android Webview 上的加载时间

dynamics-crm - 如何在 CRM 2011 中的脚本中从实体中获取数据

javascript - CRM 2011 中的回复电子邮件事件图像

javascript - 如何更改 ViewPager 中的页面 react-native

javascript - 如何使用 java 脚本检索动态 CRM 自定义字段值?

javascript - 使用javascript同步获取CRM 2011中的元数据

jquery - 在弹出窗口中的 CRM Dynamics 365 Web 资源中使用 jQuery

dynamics-crm - Dynamics 365 拖放附件