2

继我已解决的 [previous issue][1] 之后,我在构建包含一些基本 javascript 的简单 HTML Web 资源时遇到了问题,页面正确呈现,但脚本似乎无法正常工作。

我的 HTML 资源非常基础:

<html>
<head>
    <script src="ClientGlobalContext.js.aspx" />
    <script type="text/javascript" src="new_jquery_1.7.2.min" />
    <script type="text/javascript">    

        function buttonClick() { alert('Yo !'); }

    </script>
</head>
<body>
    <input type="button" value="Test" onclick="javascript: buttonClick();" />
</body>
</html>

尽管页面显示正常,但单击按钮会产生The value of the property is null or undefined not a function object错误,例如功能不存在,但我通过 F12 控制台检查了代码是否正确呈现。

我还尝试通过直接 url 调用 web 资源,形式为

http://mycrmserver/myorg/WebResources/new_myResource

但是(正如我所料)页面的行为是相同的。

我检查了谷歌,我浏览了其他几个 SO 问题MSDN,都说这是正确的方法,我的代码有什么问题?

其他(不确定是否有用)详细信息:

  • 如果 F12 工具打开,则错误会SCRIPT5007在控制台中显示为 javascript 运行时错误。如果不是,如果我浏览到 webresource 直接 url,我会收到通常的脚本错误通知弹出窗口,或者如果我尝试在 CRM 中打开资源,则什么也不会发生。
  • CRM 环境已更新为Rollup 3 (不幸的是,更新它不是一种选择)
  • 我使用的是IE 9(记住:Dynamics CRM 还不能在非 IE 浏览器中使用)


更新 速记标签混淆了 CRM。

基本上这种语法有时会搞砸:

<script src="ClientGlobalContext.js.aspx" />

但这完美地工作:

<script src="ClientGlobalContext.js.aspx"></script>
4

1 回答 1

3

script尽管您发布的代码是正确的,但根本原因是缺少标签。

CRM 对您发布到脚本编辑器窗口的 HTML 进行了一些处理。在浏览器中呈现的是这样的(请注意,ClientGlobalContext.js.aspx标签的关闭方式与您粘贴的代码不同):

<HTML><HEAD>
<SCRIPT src="ClientGlobalContext.js.aspx">
<script type="text/javascript" src="new_jquery_1.7.2.min" />
<script type="text/javascript">    

    function buttonClick() { alert('Yo !'); }

</SCRIPT>

<META charset=utf-8></HEAD>
<META charset=utf-8></HEAD>
<BODY><INPUT onclick=javascript:buttonClick(); value=Test type=button></BODY></HTML>

解决方案:向每个开始脚本标记添加完整的“关闭”标记(而不是使用“/>”)。

于 2012-08-09T12:30:28.817 回答