4

所以基本上我在一个页面上有jquery代码:

  1. 打开一个新的弹出窗口
  2. 显示导轨视图页面
  3. 在新打开的页面上操作项目

不知道有什么样的解决方案,但我认为这应该很容易。

那是代码:

// open a popup window for example /fault_books/3
popup = window.open("/fault_books/" + <%= @fault_book.id %> , "popup");

// trying to get the scope of the element
var module = $(".module-logo", popup.document.body)

// manipulating the element
$(module).hide();
4

2 回答 2

3

不确定它是否会跨浏览器,但您可以尝试以下操作:

var popup = window.open("/fault_books/" + <%= @fault_book.id %> , "popup");
$(popup.document).ready(function(){
  var module = $(".module-logo", $(popup.document))
  // manipulating the element
  $(module).hide();
});
于 2013-06-11T13:22:52.910 回答
0

你为什么不把你的javascript代码放到生成的响应中"/fault_books/" + <%= @fault_book.id %>"

在这种情况下,只需照常进行:

$(document).ready(function(){
    var module = $(".module-logo")

    // manipulating the element
    $(module).hide();
});

并且在打开新窗口时不需要做任何事情,只需调用:

popup = window.open("/fault_books/" + <%= @fault_book.id %> , "popup");

由于脚本是自包含的,因此该解决方案简单且易于维护。页面上的脚本只为包含页面执行工作。比方说,如果您有另一个页面打开相同的 url window.open("/fault_books/" + <%= @fault_book.id %> , "popup");。您不必复制代码。

于 2013-06-11T13:35:39.083 回答