2009-02-14 38 views
12

jQuery này sẽ trả lại URL nguồn gốc của một khung:Nhận nguồn khung với jQuery (sau khi nguồn đã thay đổi)

$('#frame-name').attr('src') 

Nhưng nếu một liên kết bên trong khung được nhấp, nguồn gốc vẫn được trả lại.

Có thể phát hiện URL nguồn mới không? Hoặc lấy nguồn của tài liệu mới được tải trong khung? Nếu một trong số đó là có, thì có những hạn chế về bảo mật nếu khung nguồn chứa URL từ một miền khác không?

Trả lời

5
parent.frames[1].location.href; 

Không phải jQuery, nhưng những gì tôi đang tìm kiếm. Tuy nhiên, đá một lỗi bảo mật nếu nguồn nằm trên một tên miền khác.

1

AFAIK không có cách nào tốt để làm điều này với jQuery. Bạn cần sử dụng location.href trên phần tử html vì vậy nếu bạn nhận được phần tử với jQuery, bạn có thể làm điều này.

$("#iframe-name").get(0).location.href 
+1

$ ("# iframe-name"). Get (0) .location.href không được xác định –

+0

Bạn có đang thực hiện việc này từ khung chính không? Xem liệu bộ chọn có thực sự trả về HTMLElement hay không. cảnh báo ($ ("# iframe-name"). Get (0)); –

+5

thử $ ("# iframe-name"). Get (0) .contentWindow.location.href –

1

Liên kết từ một tên miền khác? Các trình duyệt có thể hạn chế quyền truy cập vào bất kỳ thông tin nào về những gì người dùng đã mở trong các cửa sổ hoặc khung khác nếu nó ở trên một trang web khác để đề phòng bảo mật.

2

Là tiện ích bổ sung cho trình duyệt, các lỗi bảo mật sẽ biến mất.

Ví dụ: Greasemonkey là một tiện ích mở rộng của Firefox nơi bạn có thể khám phá và nếu bạn thích tập lệnh bạn tạo, nó có thể được đóng gói thành phần mở rộng của riêng nó.

Hoặc, bạn có thể chèn tập lệnh vào một trang dưới dạng bookmarklet.

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