首先-这个问题没有答案 Include variable in URL 或How 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查询中?
答案 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}`);