如何在HTML属性值

时间:2017-01-05 11:20:19

标签: javascript html

我想编写JavaScript代码并在Python+Selenium脚本中使用它。目标URLMicrosoft account login page。在这里,我想强制点击打开Terms of use页面,而不是在新标签页面中,但是在新窗口中,我对相应的锚标记进行了一些更改。我在JS有一点经验,所以这就是我现在所得到的:

document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open('https://login.live.com/gls.srf?urlID=WinLiveTermsOfUse&mkt=EN-US&vv=1600', '', 'width=800,height=600')")
document.querySelector('a#ftrTerms').removeAttribute('href')

......这很好(不是最好的方法,但没关系)。但是,重定向URL是硬编码的,因此我首先使用以下内容从URL获取href,然后将其传递给属性:

var reference = document.querySelector('a#ftrTerms').getAttribute('href');
document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open(\'' + reference +  '\', '', 'width=800,height=600')")
document.querySelector('a#ftrTerms').removeAttribute('href')

...且此代码无效:我HTML中的属性显示为

onclick="window.open('' + reference + '', '', 'width=800,height=600')"

那么如何用reference名称替换其实际值?

1 个答案:

答案 0 :(得分:1)

您只需要根据值计算字符串:

document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open('" + reference + "', '', 'width=800,height=600')")

reference不应该在字符串中,而是与字符串前缀和后缀的其余部分连接