下面的函數旨在獲取/處理jQuery選擇器或URL的HTML。如果傳入一個URL,它會生成一個iframe,並在iframe加載後抓取iframe的HTML。 (注意:我不使用外部URL,只是在同一網站上的其他頁面。)獲取iframe內容導致TypeError:'undefined'不是對象
無論何時我傳入URL,該函數都會拋出TypeError: 'undefined' is not an object (evaluating 'myHTML.find')
。我不明白爲什麼。這裏有什麼突出的東西嗎?
1 mynamespace.html: function (source) {
2 // Grabs and processes the HTML of a jQuery selector or URL.
3
4 var myHTML;
5
6 if ($(source).is('iframe')) {
7 // if it's an iframe, use .contents()
8 myHTML = $(source).contents().find('html').clone();
9
10 } else if (source.indexOf('http://') === 0) {
11 // if it's a URL, load an iframe
12 $(document.body).append('<iframe id="printiframe" src="'+source+'"></iframe>');
13 $('#printiframe').load(function() {
14 // once loaded, send it back into this function,
15 // where it can then be processed as an iframe
16 return mynamespace.html ('#printiframe');
17 });
18
19 } else {
20 myHTML = $(source).clone();
21 }
22
23 // Do stuff to the HTML here, such as myHTML.find('bla')...
24
25 return myHTML.html();
26 }
做你的面和iframe坐在相同的域? – Hadas 2012-01-30 07:05:42
是的,iframe src和其他所有內容都在我的單個域中。 – supertrue 2012-01-30 07:14:21
我希望你不介意編輯,但是我會放入行號,以便答案可以輕鬆地引用代碼的某些部分。 – nnnnnn 2012-01-30 07:44:06