Javascript 如何访问窗口对象的位置属性?

Javascript 如何访问窗口对象的位置属性?,javascript,jquery,Javascript,Jquery,我在访问窗口对象的location属性时遇到问题,需要通过JavaScript/jQuery将用户重定向到另一个页面。我知道您通常应该使用.htaccess文件来执行此操作,但实际上我正在编写一个nw.js应用程序,所以我没有服务器 下面是一个示例源代码: <!DOCTYPE html> <html> <head> <title>Test</title> <script src="http://code.jquery.co

我在访问窗口对象的location属性时遇到问题,需要通过JavaScript/jQuery将用户重定向到另一个页面。我知道您通常应该使用.htaccess文件来执行此操作,但实际上我正在编写一个nw.js应用程序,所以我没有服务器

下面是一个示例源代码:

<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
  <script src="http://code.jquery.com/jquery-3.2.1.js">
  </script>
  <script>
  $(function() {
    $("#testbutton").click(function() {
      $("#testbutton).before($(window).attr("location"));
    });
  });
  </script>
</head>
<body>
  <button type="button" id="testbutton">Click me</button>
</body>
</html>

试验
$(函数(){
$(“#测试按钮”)。单击(函数(){
$(“#测试按钮).before($(窗口).attr(“位置”);
});
});
点击我
如果成功的话,应该获取location属性的值,并在单击按钮时将其插入按钮之前

事实上,它没有任何作用。我还尝试将location属性的值赋给一个变量,或者用纯JavaScript编写(我打算避免这样做),但这两者都没有改变什么都没有发生的事实

可以通过jquery访问窗口对象的location属性吗?如果可以,我的错误是什么


我想在更改之前先打印值,因为我喜欢一步一步地开发项目。我知道这段代码不会更改location属性,但我想知道为什么它甚至不获取值?

您不需要jQuery….直接访问
location.href

$(函数(){
$(“#测试按钮”)。单击(函数(){
$(“#测试按钮”)。之前(location.href);
});
});


单击我
您不需要jQuery…直接访问
位置href

$(函数(){
$(“#测试按钮”)。单击(函数(){
$(“#测试按钮”)。之前(location.href);
});
});


单击我
窗口对象是一个全局对象,具有许多可以读取和编辑的属性,其中一个属性是位置对象,它不是文本,它是一个包含有关当前位置和url的一些信息的对象,但您可以使用位置来访问当前url位置。href然后你可以在任何你想要的地方插入这个文本,看看下面的例子

$(函数(){
$(“#测试按钮”)。单击(函数(){
var currentUrl=window.location.href;
$(“#测试按钮”)。在(currentUrl+”
”)之前; }); });

点击我

窗口对象是一个全局对象,具有许多可读取和编辑的属性,其中一个属性是位置对象,它不是文本,它是一个包含有关当前位置和url的一些信息的对象,但您可以使用位置.href和n您可以在任意位置插入此文本,请参见下面的示例

$(函数(){
$(“#测试按钮”)。单击(函数(){
var currentUrl=window.location.href;
$(“#测试按钮”)。在(currentUrl+”
”)之前; }); });

点击我

您是否尝试通过
window.top.location.href阅读href?在($(window.attr)(“location”);
之前($(window.attr)(“location”);通过
$(“#testbutton”)。在(location.href);
)之前您是否尝试通过
window.top.location.href
在($(window.attr)(“location”)之前阅读href
$(“#testbutton”)。在(location.href)
)之前,SO代码段发生了一些奇怪的事情……如果从jQuery
src
中删除
http:
,它会工作……如果添加
s
类似于
https:
,它会工作(即使这不是一个安全链接……)但是指定
http:
会导致
Uncaught ReferenceError:$未定义
…这很奇怪。那么bug呢?@louyspatricebesette不确定您的意思。我没有注意协议(从OP代码复制)…正在firefoxChrome中为我使用http…正如我所描述的那样,不起作用。可能这与浏览器相关,因为Chrome对SSL很挑剔。@LouysPatriceBesette我将其更改为协议相关…现在应该可以工作了吗?是的,现在可以。;)SO代码段发生了一些奇怪的事情…如果从jQu中删除
http:
ery
src
,它可以工作…如果你在
https:
中添加一个
s
,它可以工作(即使这不是一个安全链接…),但是指定
http:
会导致
未捕获引用错误:$未定义
。这很奇怪。那么bug呢?@Louyspatricebesette不确定你的意思。我没有注意协议(复制自操作代码)…正在firefoxChrome中为我使用http…不起作用,正如我所描述的。可能这与浏览器有关,因为Chrome对SSL很挑剔。@LouysPatriceBesette我将其更改为协议相关…现在应该可以工作了吗?是的。现在可以了。。)