js獲取iframehtml(js獲取iframe嵌入第三方的資源請(qǐng)求)
如果是同域名的網(wǎng)址,可以通過JS來讀取var url = windowframes0locationhref如果是跨域的,由于安全原因,你只能獲取你原來設(shè)置的urlvar url = $#39iframe#39attr#39src#39如果iframe里面的地址跳轉(zhuǎn)了,這個(gè)是;網(wǎng)上提供的很多方法都是判斷當(dāng)前窗口與頂部窗口是否相同來實(shí)現(xiàn) 代碼如下 iftop!=this 在frame中時(shí)處理 但這個(gè)腳本并沒有區(qū)分frame和iframe 在使用腳本時(shí)IE下遇到奇怪的問題頁面只有在iframe有問題frame中是正常的;postMessage是html5引入的API,postMessage方法允許來自不同源的腳本采用異步方式進(jìn)行有效的通信,可以實(shí)現(xiàn)跨文本文檔,多窗口,跨域消息傳遞多用于窗口間數(shù)據(jù)通信,這也使它成為跨域通信的一種有效的解決方案要發(fā)送到其他窗口的;要解釋這個(gè)問題,首先要解釋兩個(gè)技術(shù)點(diǎn)每個(gè)“窗口”都是一個(gè)JS Runtime,即JS的運(yùn)行時(shí)如果只有一個(gè)窗口,那么就只有一個(gè)Runtime如果一個(gè)窗口下面還有一個(gè)iframe,那么就有兩個(gè)Runtime以此類推Runtime之間互操作;可以的只要兩個(gè)頁面有一定的關(guān)系,無論是通過iframe,還是frameset,甚至是windowopen,超鏈接等等方式,都可以讓兩個(gè)頁面之間的js互相調(diào)用注意,是互相調(diào)用,也就是說,兩者誰都有辦法調(diào)用另一個(gè)的js代碼當(dāng)然有前提;paramA=aparamB=bquotltiframe ltbodylthtml獲取參數(shù)名值對(duì)集合var paramMap = getIframeParams#39test#39paramMap的結(jié)構(gòu)是這樣的#39paramA#39#39a#39, #39paramB#39#39b#39alertparamMapparamA 取出pa;1動(dòng)態(tài)加載js,css文件用原生js和jquery iframe結(jié)構(gòu) frame0父 frame 2子 frame 3子 frame2中觸發(fā)事件,動(dòng)態(tài)的向frame3中 加載jscss文件和 dom元素 *同級(jí)之間可以調(diào)用可以 通過 子父子 的;可以通過jQuery獲取,具體方法如下quotiframequotcontentsfindquotaquotattrquothrefquot說明先獲取iframe對(duì)象然后獲取其中的網(wǎng)頁內(nèi)容,然后查找其中a標(biāo)簽,獲取其第一個(gè)匹配的a的href。
1首先,打開html編輯器,新建html文件,例如indexhtml,填寫相應(yīng)html代碼2在indexhtml的ltscript標(biāo)簽中,輸入js代碼var a = $#39#iframe#39textvar s = aindexOf#39ltiframeltbody#39var e = a;var iframe = documentgetElementById#39myFrame#39if iframeattachEvent iframeattachEventquotonloadquot, function consolelog else ifra;二通過JS獲取并操作iframe中的元素來解決問題 這里主要就是通過JS來操作Window對(duì)象Window 對(duì)象表示瀏覽器中打開的窗口,如果文檔包含框架frame 或 iframe 標(biāo)簽,瀏覽器會(huì)為 HTML 文檔創(chuàng)建一個(gè) window 對(duì)象,并為每個(gè)框;1在父頁面訪問Iframe子窗體的txtAddress控件 windowframesquotifrMapCompanyDetailsquotdocumentallquottxtAddressquotvalue = #39地址#39 2在Iframe子窗體1訪問父頁面的TextBox1控件 , 子窗體1把值賦給子窗體2的某個(gè)控件;把js代碼放在iframe后面,因?yàn)槟愕膇frame還沒有加載;能獲取到iframe里面的HTML吧,如果能拿到的話 不就方便了按照局部打印的方式把從iframe里獲取到的html打印出來就OK了。
layeropen type 2, content #39testiframehtml#39, success functionlayero, index var iframeWin = windowlayerofind#39iframe#390#39name#39 iframeWinmethod windowla;這樣解決function show documentwritewindowframesquotcwinquotdocumentgetElementByIdquotregquotstyleheight windowonload=show也許你會(huì)說,那為什么我的innerHTML能獲取到呢? 請(qǐng)注意完全下載!明白了吧。
locationhref , 1每11000秒更新一次iframe網(wǎng)址 ltscriptltheadltbodyltiframe href=quot這里是網(wǎng)址quot id=quotIamPointerquotltiframelt!ID隨便寫*試試行不行,本人沒試過;就可以模擬保持設(shè)置舉個(gè)簡(jiǎn)單例子lthtml lthead ltscript 儲(chǔ)存當(dāng)前頁面的JS對(duì)iframe做出的設(shè)置 var settings = function autoSet 處理URL,如果帶有初始設(shè)置,則讀取 var sval = locationhrefifsval。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。