升级javascript,添加到字段的链接

时间:2014-12-26 17:31:21

标签: javascript jquery ajax dom dynamics-crm

我正在尝试将Sales Stage字段标签更改为超链接以弹出新的浏览器窗口。

目前我有一个带有Sales Stage字段的表单,其下拉::

enter image description here

基础HTML:

<td title="Select the sales process stage for the opportunity to indicate the probability of closing the opportunity." class="ms-crm-ReadField-Normal ms-crm-FieldLabel-LeftAlign" id="salesstagecode_c"><span class="ms-crm-InlineEditLabel"><span class="ms-crm-InlineEditLabelText" style="text-align: left; max-width: 115px;">Sales Stage</span><div class="ms-crm-Inline-GradientMask" style="display: none;">
</div></span></td>

或者更好的格式化:

enter image description here


我之前使用过的函数在旧版本的表单上工作:

function csjs_AddHyperlinkToLabel(sFieldId, sURL, sWindowOptions) {
    var sCurrentLabel = $("label[for='" + sFieldId + "']").html();
    $("label[for='" + sFieldId + "']").html("<a href=\"#\" onclick=\"window.open('" + sURL + "', null, '" + sWindowOptions + "'); return false;\" style=\"cursor:hand; color:blue; text-decoration:underline;\">" + sCurrentLabel + "</a>");
} 

上面的函数在带有以下html ::

的表单上工作

enter image description here

javascript需要进行哪些更改才能将Sales Stage字段标签更改为超链接以弹出新的浏览器窗口?

虽然我非常感谢解决方案,但我正在寻找如何实现这一目标的指导。感谢您的关注和时间。

不幸的是,下面的解决方案不起作用。我通过调试器运行了这个,这就是我得到的http://screencast.com/t/fT6tHvXZzvc

这里的问题是我们将“salesstagecode”传递给此函数:

csjs_AddHyperlinkToLabel("salesstagecode", sPageURL, sWindowFeatures);

,结果证明是NULL:

var sCurrentLabel = $("label[for='" + sFieldId + "']").html();

*

  

问题在于Microsoft改变了表单的呈现方式   渲染页面的HTML将不再适用于   功能写的。标签现在位于span标签中而不是a   标签标签。我不知道是否有办法确定那个跨度和   更改内容以使用新的HTML来建立文本链接。

*

如何更新范围标记?

2 个答案:

答案 0 :(得分:1)

您需要在超链接标记中添加target="_blank"属性。

答案 1 :(得分:1)

简单:

更改

 .... onclick=\"window.open('" + sURL + "', null, '" ....

 .... onclick=\"window.open('" + sURL + "', '_blank', '"  ....