tôi có 2 khung hình trong một trang như thế này (home.html)Làm thế nào để truy cập vào khung (không iframe) nội dung từ jQuery
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame id="treeStatus" src="treeStatus.html" />
</frameset>
và sau đó trong một khung hình (treeStatus.html) Tôi có một cái gì đó như
<body style="margin: 0px">
<div id="statusText">Status bar for Tree</div>
</body>
Tôi muốn từ cửa sổ trên cùng để thao tác div nằm trong khung con qua jquery (ví dụ: hiển thị và ẩn).
Tôi đã thấy severalquestionslikethis và họ đề nghị như sau
$(document).ready(function(){
$('#treeStatus').contents().find("#statusText").hide();
});
Tôi không biết nếu điều này làm việc với iframe nhưng trong trường hợp của tôi, nơi tôi có khung đơn giản, nó dường như không làm việc. Mã này được đặt bên trong home.html
Dưới đây là một số đầu ra từ bảng điều khiển firebug
>>> $('#treeStatus')
[frame#treeStatus]
>>> $('#treeStatus').contents()
[]
>>> $('#treeStatus').children()
[]
Vì vậy, làm thế nào để truy cập vào các yếu tố khung từ khung trên? Am i thiếu cái gì ở đây?
trả lời
Sau khi kết hợp cả hai câu trả lời ở đây, cách chính xác là
$('#statusText',top.frames["treeStatus"].document).hide();
Đối với điều này để làm việc theo khung phải có tên thuộc tính ngoài các id, như thế này:
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame name="treeStatus" id="treeStatus" src="treeStatus.html" />
</frameset>
Chỉ cần một lưu ý : tại sao sử dụng khung khi bạn có thể sử dụng 'vị trí: cố định' để thêm thanh trạng thái (hoặc đăng nhập được đề xuất theo kích thước) luôn ở cuối chế độ xem ... hỗ trợ trình duyệt cũ? – alex
@alex đây chỉ là một ví dụ tối thiểu tôi đã tạo cho stackoverflow. Ứng dụng thực sự hoàn toàn khác. Nó phức tạp hơn các thanh trạng thái đơn giản. Khung là một yêu cầu (Đừng hỏi!). – kazanaki
OK, đừng lo. Chỉ cần nghĩ rằng tôi muốn thêm rằng (một số người không biết về 'vị trí: cố định'). – alex