javascript - 全局变量不显示在div中

标签 javascript jquery html

我在 .js 文件的开头声明了一个变量:

var option="blabla";

在第 1.html 页上,我单击了指向第 2.html 页的链接

<script>document.write(option);</script>

2.html 上没有显示任何文本。当我在 2.html 上刷新浏览器时,输出未定义。

我需要做什么才能在点击链接后立即显示文本?

<小时/>

或者,如何让以下代码在 2.html 上输出 strUrl:

在 1.html 上我有一个链接:

<a href="2.html" onclick="function1("item")">

在 2.html 上我有一个 div:

<div id="display">document.write(strUrl);</div>

然后我的 .js 文件中有:

function1(searchitem)
{
    strUrl = 'http://blabla.com/' 
    + '?key=' + searchitem;
}

最佳答案

您尝试在一个页面上创建一个 Javascript 变量,然后在另一个页面上使用它。这或多或少是一个广泛的问题,因为您希望跨页面维护值。首先,您需要决定在哪里定义该值以及在哪里使用它。如果这更像是服务器端变量,那么您需要在服务器端定义它,然后将其生成到 Javascript 代码中。如果您使用 PHP,那么您可以这样做:

<script type="text/javascript>
    var foo = '<?php echo $bar; ?>';
</script>

当然,您需要初始化 $bar 才能做到这一点。如果变量应该是客户端变量,那么您需要使用 localStorage,就像 1.html 上的这样:

localStorage.setItem("option", "blablabla");

然后将其加载到2.html上:

localStorage.getItem("option");

或者,如果您需要在服务器端和客户端都使用它,那么您可以使用 cookie 来实现此目的。使用 cookies 稍微复杂一些,但是my answer to another question应该能让你继续前进。

让我们重点关注这对您不起作用的原因。当页面卸载时,Javascript 变量将不再存在,因此此后您将无法使用它的值。因此,您需要以某种方式保留它,将其存储在服务器或运行浏览器的计算机上。

作为旁注,我应该提到,如果您在页面的 iframe 内加载某些页面,则可以跨页面使用 Javascript 变量,但这是一种不同的情况。

关于javascript - 全局变量不显示在div中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566814/

相关文章:

javascript - 为什么在 Angular 中使用 $http 而不是 jquery 的 ajax?

javascript - 改变html中的滚动条

javascript - Jquery引用错误: invalid assignment left-hand side

javascript - 计数器按钮和新按钮

javascript - jquery 查找特定输入的父级并应用类

javascript - 如何在 ReactJS 中更改按钮文本

javascript - 文本节点可以开槽吗?

javascript - 如果 href 包含 X,则更改 href

javascript - this.element 的closest() 无法正常工作

javascript - 在第一列 DataTables 中禁用行选择