gpt4 book ai didi

javascript - 如何在 servicenow 服务门户的文本字段中添加占位符?

转载 作者:行者123 更新时间:2023-11-28 10:43:56 25 4
gpt4 key购买 nike

我需要在页面加载时将占位符添加到服务门户下目录项中的文本字段,我尝试使用 jquery 和 Angular/Document 在目录客户端脚本中尝试,但没有成功,并发现它不支持任何其他替代解决方案?

目录客户端脚本:

function onLoad() {


var elm = angular.element(element.getElementsByClassName("form-control"));
//when I use angular I get this error:

js_includes_sp.jsx?v=08-28-2017_0947&lp=Mon_Aug_28_11_44_06_PDT_2017&c=2_42:63808 (g_env) [SCRIPT:EXEC] Error while running Client Script "Placeholder Script": TypeError: Cannot read property 'element' of null.

 jQuery("#sp_formfield_IO:5cdafd764f02030007b03fb28110c70b").attr("placeholder","hello world");

// if I use jquery or $jq I get below error

(g_env) [SCRIPT:EXEC] Error while running Client Script "Placeholder Script": TypeError: jQuery is not a function

}

这就是在 servicenow 中生成 html 的方式:

<span ng-switch-default="true" class="ng-scope">
<!-- ngIf: !field.max_length || 256 > field.max_length -->
<input ng-model="field.stagedValue" ng-change="stagedValueChange()"
maxlength="" autocomplete="off" name="IO:5cdafd764f02030007b03fb28110c70b"
id="sp_formfield_IO:5cdafd764f02030007b03fb28110c70b" data-type="string"
placeholder="" ng-if="!field.max_length || 256 > field.max_length"
class="form-control ng-pristine ng-untouched ng-valid ng-scope ng-empty ng-
valid-maxlength" ng-model-options="{allowInvalid: true}" ng-
disabled="field.isReadonly()" aria-invalid="false"><!-- end ngIf:
!field.max_length || 256 > field.max_length --><!-- ngIf: field.max_length
>= 256 --></span>

enter image description here

最佳答案

嘿,

简短的回答是,在服务门户中没有公认的方法来执行此操作。这是因为 DOM 操作被严格阻止。然而,更长的答案是,确实有一种方法可以在服务门户中做到这一点。我写了一篇关于它的文章,你可以找到here

您将需要该帖子中的 CatItemVariables Script Include,它将目录变量转换为 sys_ids。由于 UI 脚本不在服务门户上运行(即使是全局脚本,我上次检查过),您还需要创建一个 UI 脚本并将其设置为 JS Include,将其作为服务主题的一部分包含在内门户网站。(帖子中详细介绍了如何执行此操作。)

在 UI 脚本中,您需要使用 REST 请求和脚本包含来获取 cat 项变量。

<小时/>

可能还有更简单的方法:

  1. 设置文章中提到的脚本包含。
  2. 在 onLoad 客户端脚本中,通过使用 GlideAjax 调用客户端可调用的脚本包含,使用脚本包含来获取与目录项关联的所有变量的 sys_ID。
  3. 使用 this 对象作为 window 的替代对象,并记住 document 的元素窗口:

    this.document.getElementsByName('IO:' + itemVars['var_name'])[0];

在上面,itemVars 是包含生成的目录项变量对象的变量名称,'var_name' 是变量名称。

它并没有真正实现您正在寻找的功能,但您也可以考虑字段字典本身的“占位符文本”字典字段。

关于javascript - 如何在 servicenow 服务门户的文本字段中添加占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com