【问题标题】:Passing Javascript variable to '<a href' with 'window.location.href' in a frame在框架中使用“window.location.href”将 Javascript 变量传递给“<a href”
【发布时间】:2013-02-20 06:05:48
【问题描述】:

正如标题所示,我想用 javascript 传递一个变量,但在一个框架中 过去我有这个代码:

  <a href="page.php" target="frame" onClick="$('#frame').show()">

现在我想传递一个变量,下面的代码可以传递变量但在另一个窗口中但我希望它在同一个框架中。

 <a href="page.php" target="frame" onClick="location.href=this.href+'?var='+X;">

【问题讨论】:

  • 使用框架很重要吗?如果您只是在某些内容中 ajaxed 可能会更好 - 这样您就不必担心帧之间的通信

标签: javascript jquery html href


【解决方案1】:

我想你也许可以使用:

document.getElementById('frame').contentWindow.location.href...

更改框架的href(并传递您的变量),但我很确定如果您使用的是查询字符串,它将需要刷新。

也许如果您附加一个哈希 (#var=something) 而不是一个无需刷新就可以工作的查询字符串?

请注意,如果您跨域执行框架内容,这可能根本行不通。

【讨论】:

  • 你能扩展一下吗?我没有测试过这段代码(我也不会创建一个测试用例),但如果你分享任何错误,我很乐意帮助你调试,或者更好的是,如果你想创建一个最小的测试用例并链接它...
  • 我的代码中有一个错字:getElementbyId 应该是 getElementById。这能解决问题吗?
  • 我添加了下面的代码,但他在框架中显示了相同的页面。函数重定向(){ $('#frame').show(); document.getElementById('frame').contentWindow.document.location.href = "page.php?var="+X;}
  • 问题(我认为)是它在redirect() 触发后将链接href(#)加载为&lt;a&gt; 的默认事件处理程序。也许尝试function redirect(e){ ...; e.preventDefault; } 会起作用?或者可能在该函数的末尾return: false;?我永远不记得什么时候使用哪个 ;-)
  • 如果您只是将代码粘贴到控制台中,而不是在单击时尝试它,它是否有效? $('#frame').show(); document.getElementById('frame').contentWindow.document.lo‌​cation.href = "page.php?var="+X;(您必须确保在全局范围内定义了 X,或者将其替换为您想要的值)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
相关资源
最近更新 更多