0

I'm trying this rough script idea. But it is not working.

<script>
function storeurl() {
var varurl = document.URL;
}

document.onclick = storeurl;
document.write(varurl);

</script>

varurl is set as the actual url using document.URL function.

with <a href="#2">broogle</a> then on click i would like varurl to be set to #2 and then echo.

In a perfect world this script would echo

http://url/#2

when clicking on the link

Any help? Thx

4

6 回答 6

2

您的 varurl 变量的范围是方法(函数)级别。这意味着它对于在函数之外运行的代码是不可见的。

此外,document.write 代码将在脚本第一次运行时执行,即在单击之前(如果单击发生)。

如果您不需要使用 varurl 而是将其写入文档,您可以将 document.write 代码移动到函数中并保留 varurl 的狭窄范围:

<script>
function storeurl() {
var varurl = document.URL;
document.write(varurl);
}

document.onclick = storeurl;

</script>

否则将变量定义移出函数,使其(变量)成为全局变量:

<script>
var varurl;

function storeurl() {
varurl = document.URL;
document.write(varurl);
}

document.onclick = storeurl;

</script>
于 2013-06-17T13:33:49.420 回答
1

var使其成为函数作用域的局部变量。另外,您甚至在设置之前就尝试阅读它。

于 2013-06-17T13:34:03.177 回答
0

它应该工作,

<script>
function storeurl() {
varurl = document.URL; // it should be Global variable, so remove var
document.write(varurl);//when you're declaring this outside of the function
}

document.onclick = storeurl;


</script>
于 2013-06-17T13:37:19.567 回答
0

将您的代码更改为

var varurl;

function storeurl() {
    varurl = window.location.href;
}
于 2013-06-17T13:35:23.540 回答
0

您已经对varurl声明它的函数进行了定位,var因此从该函数外部看不到它。

var varurl;
function storeurl() {
    varurl = document.URL;
}

您还立即写入它的值,而不是在 click 事件中这样做,因此它不会在您write().

function storeurl() {
    var varurl = document.URL;
    document.write(varurl);
}

document.onclick = storeurl;
于 2013-06-17T13:34:27.253 回答
0

对于简单地将 URL 存储在变量中,无论是外部 URL还是当前页面的 URL ,然后显示它或用它做其他事情,您可以按照以下代码中显示的内容进行操作:

<html>
    <body>
        <button onclick="go()">GO TO GOOGLE</button><br/>
        <button onclick="show()">CLICK TO SHOW CURRENT URL</button><br/>
        <p id="showhere"></p>

        <script>
            function go(){
                var u = "http://www.google.com" ;
                window.location.href = u; //takes you to google.com
            }

            function show(){
                var x = window.location.href;
                document.getElementById("showhere").innerHTML = x;
                  //shows URL of current page below the buttons
            }
        </script>
    </body>
</html>
于 2016-05-31T07:31:03.413 回答