簡體   English   中英

如何在新打開的彈出屏幕上執行javascript / jquery

[英]How to execute javascript / jquery on a newly opened popup screen

所以基本上我在頁面上有jquery代碼,其中:

  1. 打開一個新的彈出窗口
  2. 顯示rails視圖頁面
  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();

不確定它是否會跨瀏覽器,但您可以嘗試以下方法:

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();
});

你為什么不把你的javascript代碼放到"/fault_books/" + <%= @fault_book.id %>"生成的響應中"/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"); 您不必重復代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM