【发布时间】:2020-03-07 16:52:17
【问题描述】:
我有通过保存的搜索结果列(循环)上的公式(文本)字段注入浏览器的内联“html/javascript”。换句话说,这将为结果列中的每一行创建一个按钮,该按钮将针对该特定行/记录(即 internalid)执行 JavaScript。 虽然按钮链接正常工作(即导航到正确的记录),但 JavaScript 警报结果会为所有按钮点击行生成相同的 {internalid}:
'<html>
<a target="_blank" id="Link" href="https://website.com/rectype=142&id='||{internalid}||'">
<button id="Button" type="button" onclick=test();> Check-In
</button>
</a>
<script>
function test() {var x = document.getElementById("Link").href; alert(x);}
</script>
</html>'
当前警报结果:
第 1 行 [签入] 按钮单击警报 = https://website.com/rectype=142&id=157
第 2 行 [签入] 按钮单击警报 = https://website.com/rectype=142&id=157
所需的警报结果:
第 1 行 [签入] 按钮单击警报 = https://website.com/rectype=142&id=157
第 2 行 [签入] 按钮单击警报 = https://website.com/rectype=142&id=158
第 3 行 [签入] 按钮单击警报 = https://website.com/rectype=142&id=159
更新:需要任何 href 解析的结果,因此可以将其传递给脚本测试函数。
【问题讨论】:
-
很难用您显示的有限代码来判断,但是如果您有多个具有相同 id 的
<a>元素(在本例中为链接),那将不起作用。 ID 必须是唯一的。 -
当然,在显示错误的 JavaScript 警报之后,
能够动态获取 {internalid} 并导航到正确的记录,这似乎很奇怪。 -
有多少个 元素的 id 为“Link”?
-
其实这是完整的代码。搜索通过 UI 执行,此代码被注入搜索返回的每一行;然后浏览器编译代码并显示我的按钮。
-
这就是为什么你会得到多个具有相同 id 的 元素。你必须改变它。它显示相同的警报,因为您的函数在找到第一个 id 为“Link”的元素时停止查找。 ID 必须是唯一的。
标签: javascript html netsuite suitescript