2011-11-07 34 views
5

Tôi có thành phần mx: html trong ứng dụng Máy tính để bàn AIR tải trang web bên ngoài vào ...HTML trong ứng dụng dành cho máy tính để bàn tải một trang có khung nội tuyến

trang web này có khung nội tuyến và tải iframe (rõ ràng) một trang khác ...

tôi không thể tìm ra cách để lấy mã của iframe ...

Nếu tôi cố gắng để có được nội dung trang web tôi chỉ retrive trang bắt đầu như:

Tệp trang web.html

<html> 
<!-- html code--> 
<iframe src="http://host/framepage.html">content default</iframe> 
<!-- other html code--> 
</html> 

file framepage.html

<div>test test test</div> 

Tôi muốn để có được những chuỗi <div>test test test</div>

xin vui lòng cho tôi biết rằng có một cách để có được nội dung của khung nội tuyến (mà không cần tải lại nó). ..

EDIT

Nhìn vào phản ứng của Exort, sử dụng

var iFrame:* = domWindow.document.getElementById("myIframe"); 

sẽ trở lại cho tôi những iframe, nhưng nội dung nó không phải là một tôi muốn ... Sử dụng trang web của tôi và gương framepage trên, nội dung iframe tôi sẽ nhận được là

content default

thay vì

<div>test test test</div>

nó giống như là trang thứ hai không được tải, nhưng nó thực sự được tải và hiển thị trong cửa sổ trình duyệt (i cũng đã cố gắng USI một nút để tôi có thể trì hoãn việc tìm kiếm nội dung khung nội tuyến.

+0

Khung nội tuyến trên cùng tên miền chính xác với dự án mẹ? – Wes

+0

có nó nằm trong cùng một tên miền – Marcx

+0

Câu hỏi này là một bản sao của: http://stackoverflow.com/questions/785823/accessing-an-iframes-contents-in-adobe-air –

Trả lời

1

Tôi không có nhiều thời gian nên đây có thể không phải là câu trả lời thực sự sâu, nhưng khung nội tuyến được xem xét trong cửa sổ và có tài liệu riêng. Bạn có thể lấy nội dung của nó bằng DOM html với một cái gì đó như thế này. Đây là AS3 bằng cách này, sự kiện nếu tôi đang sử dụng '*' làm loại đối tượng. Sử dụng loại đối tượng sẽ không hoạt động thực sự tốt ở đây.

var domWindow:* = myHTML.htmlLoader.window; //DOM window object 

//if you don't have the id, you can get all iframes with getElementsByTagName("iframe") 
var iFrame:* = domWindow.document.getElementById("myIframe"); 

var iFrameContent:String = iframe.contentDocument.body.innerHTML; 
+0

nó sẽ không hoạt động, ngoại trừ thực tế là 2 dòng cuối cùng không đưa ra bất kỳ kết quả nào, cũng nhận được 'iframe' tôi không thể truy xuất dữ liệu ... thay vào đó tôi có thể nhận được" văn bản "của khung nội tuyến có trên trang đầu tiên. Tôi đã chỉnh sửa bài đăng của mình để làm rõ hơn. – Marcx

+0

Thật không may tôi không thể kiểm tra nó, nhưng giải pháp là xung quanh đó. Hãy thử kiểm tra iframe trong gỡ lỗi và xem bạn có thể không nhận được cửa sổ hay không. Từ đầu của tâm trí của tôi nó đã được contentWindow nhưng nó có thể là cái gì khác. Tôi sẽ xem liệu tôi có thể cung cấp thêm chi tiết cho bạn sau này không, xin lỗi! – Exort

+0

NP! Tôi nhìn vào cửa sổ gỡ lỗi cho ít nhất là toàn bộ buổi sáng và thấy không có gì hữu ích, vì vậy tôi hỏi ở đây .. hy vọng ai đó có thể giúp .. – Marcx