首页 > 解决方案 > Javascript如何使用window.open将变量传递给URL查询

问题描述

首先 - 这个问题 在 URL 中包含变量如何在 JavaScript 中进行字符串插值时没有答案? 在我在这里提出问题之前,我测试了其他地方的许多变体。例如,如在 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)。

或 + myname - 如果遵循其他答案。

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

标签: javascripturl

解决方案


看起来您只是将变量错误地放入字符串中。如果您不需要支持 IE,请查看模板文字。


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}`);

同样

// won't work
window.open('http://example.com/?q=(myname)');
// valid
window.open(`http://example.com/?q=${myname}`);

如果您确实需要支持 IE,那么window.open('http://example.com/?q=' + myname);应该可以


推荐阅读