【问题标题】:Put url requested into an iframe using jQuery/Javascript使用 jQuery/Javascript 将请求的 url 放入 iframe
【发布时间】:2013-11-18 17:43:21
【问题描述】:

嗯,所以我有代码可以在名为page2.html 的页面上加载 iframe。 iframe 当前加载站点的主页 (http://mydomain.com)。但是,我想做的是将任何请求的页面也放在 iframe 中。

所以,比如:http://mydomain.com/mypage/mysubpage

这需要从 javascript/jquery 中抓取并传递到 iframe src 值中。这听起来很简单,但是,它们是一个 global.js 文件,它重定向到另一个页面(page2.html),然后输出 iframe(加载 http://mydomain.com),所以我需要通过 javascript 从global.js 函数并以某种方式将其放入 page2.html 页面中,以告诉它为不同的 url 而不是 http://mydomain.com 加载 iframe。

最好的方法是什么?所以,如果你去这里:http://cdficonnect.org 在你的台式电脑上,你会注意到它在 iframe 中加载页面,但如果你去这里:http://www.cdficonnect.org/#/pages/articles/317 它仍然会将主页加载到 iframe 中,而不是那个 url .如何告诉它加载该网址而不是主页?

听起来很简单,但实施起来有问题。

此处使用 Cookie 方法:

在重定向器脚本中,在它重定向之前...

function setCookie(c_name,value,exdays)
{
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value=escape(value) + 
    ((exdays==null) ? "" : ("; expires="+exdate.toUTCString()));
  document.cookie=c_name + "=" + c_value + ";domain=cdficonnect.org";
}

setCookie('curURL', document.URL, 0);

在 desktop.html 中,头部内:

function getCookie(c_name)
{
 var i,x,y,ARRcookies=document.cookie.split(";");
 for (i=0;i<ARRcookies.length;i++)
 {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
  {
   return unescape(y);
  }
 }
}

var curURL = getCookie('curURL');
$('iframe').attr('src', curURL);

无论我在地址中输入什么网址,这始终会在 iframe 中显示主页:http://cdficonnect.org

【问题讨论】:

  • 要么将 URL 放入 cookie 中,要么将其作为查询参数添加到重定向 URL 中。
  • 已经尝试过 cookie 方法,但由于某种原因,URL 没有正确存储在 cookie 中...奇怪
  • 除非您显示您的代码,否则我们无法帮助您解决此问题。
  • 更新了我如何设置/获取 cookie 的代码。
  • 问题是您在cdiconnect.com 中设置cookie,并试图在www.cdiconnect.com 中读取它。由于setCookie 没有指定cookie 应该在子域中可用,所以它无法读取它。尝试将domain=cdiconnect.com; 添加到 cookie。

标签: javascript jquery iframe


【解决方案1】:

尝试使用 HTML 的 localStorage

在重定向脚本中,在重定向之前...

function storeLocal(label,value)
{
  window.localStorage.setItem(label,value);
}

storeLocal('curURL', document.URL);

在 desktop.html 中,头部内:

function getStorage(label)
{
 return window.localStorage.getItem(label);
}

var curURL = getStorage('curURL');
$('iframe').attr('src', curURL);

工作 jsFiddle:http://jsfiddle.net/RqkUk/

【讨论】:

  • 我必须再等 19 个小时才能获得赏金,但这正是我所需要的!!
  • @SolomonClosson 很高兴我能帮上忙!别担心,慢慢来:)
  • @SolomonClosson 我不喜欢这样做,但如果你能记住赏金的话:D 谢谢!
  • 竖起大拇指,你明白了!
猜你喜欢
  • 2011-04-11
  • 2012-06-12
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多