Javascript如何使用window.open将变量传递给URL查询

时间:2019-10-30 20:47:31

标签: javascript url

首先-这个问题没有答案 Include variable in URLHow can I do string interpolation in JavaScript? 在这里提出问题之前,我从其他地方测试了许多变体。 例如,根据Include variable in URL

的建议
window.open('http://example.com/?q="+ myname"');

不适用于以下脚本。 需要一种特定的包装方式。

最简单的脚本

<script type="text/javascript">
function sendquery() {
var myname = "John";
alert(myname);
window.open('http://example.com/?q=(myname)');
}
</script>
<button onclick="sendquery()">Query</button>

警报完美显示变量John。但是查询发送的不是变量John而是(myname)。

或者+我的名字-如果遵循其他答案。

如何将变量包装到URL查询中?

3 个答案:

答案 0 :(得分:2)

似乎您只是将变量错误地放在了字符串中。如果您不需要支持IE,请查看template literals


LinkedList

同样

var myname = "John";
// won't work
window.open('http://example.com/?q="+ myname"');
// will produce 'http://example.com/?q=John'
window.open(`http://example.com/?q=${myname}`);

如果您确实需要支持IE,那么// won't work window.open('http://example.com/?q=(myname)'); // valid window.open(`http://example.com/?q=${myname}`); 应该可以工作

答案 1 :(得分:1)

您的字符串连接不正确

var myname = "test"
window.open("http://example.com/?q=" + myname); // Classic string concatenation
window.open(`http://example.com/?q=${myname}`); // Using template literal 

答案 2 :(得分:1)

您必须将网址包装在Template Literals

window.open(`http://example.com/?q=${myname}`);