保存更改为javascript变量的网址?

时间:2014-03-26 11:37:27

标签: javascript html5

这是我的第一篇文章,所以如果我犯了任何错误,我很抱歉,我正在努力。我一直在寻找几天,我找不到解决方案,我甚至不知道是否有可能。我想要做的是基本的,我需要保存一个URL,该URL作为JavaScript变量更改,以便稍后在网站中调用。该网址为http://en.m.wikipedia.org/wiki/Special:Random,并加载随机页面。我希望变量是随机页面的URL,但它始终只是“http:// en.m.wikipedia.org/wiki/Special:Random”。我想我可能需要首先将其加载到其他地方,例如在iframe中,然后从那里调用URL,但它只是保留为“http:// en.m.wikipedia.org/wiki/Special:Random”。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您关联的页面会在您访问时重定向您。这意味着您必须在获得所需的实际随机页面之前请求它。

您可以尝试执行此操作的一种方法是在iframe中加载随机页面并查看iframe的位置。

var iframe = document.createElement('iframe');
iframe.src = 'http://en.m.wikipedia.org/wiki/Special:Random';
iframe.name = "random";
document.body.appendChild(iframe);
console.log(window.frames['random'].location.href);

如果您尝试这样,您将收到一个令人讨厌的声音错误,如下所示:

  

Uncaught SecurityError:阻止了一个包含起源的框架" http://run.jsbin.io"从访问带有起源的框架" http://en.m.wikipedia.org"。协议,域和端口必须匹配。

之所以这样,是因为同源策略表明该位置是敏感信息,如果iframe具有与尝试的页面相同的协议,域和端口,则您只能访问它访问它。

现在唯一的解决方案是在服务器上有一个页面,该页面向随机页面发出请求,获取响应并获取该响应的URL。您可以通过AJAX检索网址,也可以将其集成到页面服务器端:

<html>
<body> This is my page and this is the random url:
<?php
  ... curl request to http://en.m.wikipedia.org/wiki/Special:Random from which you get the url
  echo $url;
?>
</html>