我在一些用户交互后在我的代码中构建一个Javascript变量。我试图将构造的JS对象发送到另一个页面。
我正在尝试使用
通过HREF发送它<a href="newpage.html?" + jsvariable">
但是这个失败了。有没有其他方法可以实现这个目标?
谢谢
答案 0 :(得分:2)
你不能从那样的javascript中注入变量。
但是你可以拿起那个锚并操纵它的href
属性。有很多方法可以做到这一点。
示例:
... your html
<a id="someAnchor" href="newpage.html">test</a>
<script>
document.getElementById("someAnchor").href += "?someParam=" + jsvariable;
</script>
... rest of your html
P.S。:确保jsvariable
的值是url编码的。
答案 1 :(得分:0)
鉴于数据来自用户输入,您需要确保防止恶意输入。
尝试类似:
var anchorEl = // reference to your anchor.
anchorEl.href += '?data=' + encodeURI(jsvariable)
注意,上述解决方案适用于您希望进一步用户交互以进入下一页的情况。如果要直接重定向页面,可以执行以下操作:
window.location.href = 'newpage.html?data=' + encodeURI(jsvariable)
答案 2 :(得分:0)
我还没有对此进行测试,但我认为它会起作用:
将您的对象转换为JSON:
var jsonObject = JSON.stringify(jsvariable);
然后将其传递到您的网址:
<a href="newpage.html?" + jsonObject>
在您的newpage.html上,阅读网址并提取您需要的信息
var jsParameter = ...
将JSON转换回JS对象:
var jsObject = JSON.parse(jsParameter);