2012-05-06 47 views
6

Tôi gặp sự cố với cửa sổ bật lên js.js mở cửa sổ bật lên và truy cập phần tử của nó trong một trang khác

tôi mở một cửa sổ bật lên và cố gắng truy cập vào các yếu tố của nó trong một trang, không thành công, và tôi không muốn tải lại nguồn popup, tôi chỉ đơn giản muốn truy cập vào một yếu tố popup mở

Ex -

  • trang 1 - sổ popup mở với máy nghe nhạc html5
  • trang 2 - cần phải tạm dừng nhạc khi người dùng nhấp chuột vào nút trên trang chính

trang 1

var popup = window.open("test.html","mypopup","width=500,height=300"); 

trang thứ 2 tôi muốn truy cập cửa sổ mypopup yếu tố mà không cần tải lại popup

Tôi chỉ cần cách làm thế nào để truy cập vào các yếu tố sổ popup mở mà không cần ngắt nguồn của nó sử dụng JS hoặc JQuery

+1

Cùng xứ hàng hóa (tên miền, cổng và giao thức)? Plain JS: 'popup.document.getElementById (" player "). SomeFunction()' – mplungjan

Trả lời

6

Cùng nguồn gốc (tên miền, cổng và giao thức)?

Plain JS:

từ page1

var popup = window.open("test.html","mypopup","width=500,height=300"); 
popup.document.getElementById("player").someFunction(); 

từ trang 2

var popup = window.open('','mypopup'); 
// now popup is known again 
popup.document.getElementById("player").someFunction(); 
+0

Cảm ơn ... Tác phẩm này độc đáo ... :) –

+0

Điều gì sẽ xảy ra nếu tôi không có quyền truy cập vào mã gọi 'popup'? nhưng vẫn muốn truy cập DOM từ một trang khác? – Ethaan

+0

Vui lòng đặt câu hỏi của riêng bạn ... Nếu mã gọi nó đã đặt tên cho cửa sổ bật lên hoặc sử dụng một tay cầm, bạn có thể sử dụng nó như tôi hiển thị ở trang 2- nếu nó chỉ làm một 'window.open (" url.html ") 'thì không. Nếu bạn có quyền truy cập tập lệnh vào trang, bạn có thể viết lại chức năng bật trang. 'function popup() {/ * myVersion của this * /}' sẽ ghi đè lên 'chức năng popup() {/ * phiên bản của họ * /}' nếu bạn tải của bạn sau của họ và giữ cho tên – mplungjan

-1

Một đoạn từ một facebook OAuth 2.0 handler

TRANG 1 Trang này phải có một func tion:

var OAuthResponse = {}, 
    fbReturnHandler = function() { 
     if (!$.isEmptyObject(response)) { 
      OAuthResponse = response.authResponse; 
       // do something else 
     } 
    } 

TRANG 2

<script type="text/javascript"> 
    if (window.opener) { 
     // do something here 
     window.opener.fbReturnHandler(); 
     //window.close(); 
    } 
</script> 
+0

Đây có phải là câu hỏi đúng không? – mplungjan

+0

Đây là ví dụ về cách bạn có thể xử lý yêu cầu ủy quyền facebook. Tuy nhiên, ý tưởng vẫn như cũ và ví dụ sử dụng jQuery. Bạn mở cửa sổ bật lên từ trang 1; Bạn chuyển một chức năng cho trình mở bật lên; Bạn truy cập trình mở trên trang 2; Bạn trả lại chức năng về trang 1 –

Các vấn đề liên quan