內(nèi)容獲取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種內(nèi)容獲取方法及裝置。
【背景技術(shù)】
[0002]出于安全方面的考慮,大多數(shù)瀏覽器都禁止不同域頁(yè)面之間的跨域訪問,即瀏覽器禁止A域中頁(yè)面中的js訪問B域的頁(yè)面。但在實(shí)際使用過程中,瀏覽器經(jīng)常需要進(jìn)行跨域訪問,現(xiàn)有技術(shù)通常采用服務(wù)器代理的方式來實(shí)現(xiàn)跨域訪問。
[0003]采用服務(wù)器代理的方式實(shí)現(xiàn)跨域訪問時(shí),A域的服務(wù)器中預(yù)先建立代理,當(dāng)A域中頁(yè)面中的js需要訪問B域的頁(yè)面時(shí),瀏覽器向該代理發(fā)送訪問請(qǐng)求,由該代理根據(jù)訪問請(qǐng)求從B域的服務(wù)器中獲取相應(yīng)的頁(yè)面數(shù)據(jù),并將獲取到的頁(yè)面數(shù)據(jù)返回給瀏覽器,從而實(shí)現(xiàn)跨域訪問。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述技術(shù)至少存在以下問題:通過服務(wù)器代理的方式實(shí)現(xiàn)跨域訪問,需要預(yù)先在服務(wù)器中建立代理,開發(fā)成本較高,且服務(wù)器的處理壓力較大。
【發(fā)明內(nèi)容】
[0005]為了解決通過服務(wù)器代理的方式實(shí)現(xiàn)跨域訪問,需要預(yù)先在服務(wù)器中建立代理,開發(fā)成本較高,且服務(wù)器的處理壓力較大的問題,本發(fā)明實(shí)施例提供了一種內(nèi)容獲取方法及裝置。所述技術(shù)方案如下:
[0006]第一方面,提供了一種內(nèi)容獲取方法,該方法包括:
[0007]通過script (腳本)方式加載第一頁(yè)面中包含的第二頁(yè)面對(duì)應(yīng)的腳本文件;第一頁(yè)面與第二頁(yè)面所在域不同;
[0008]通過預(yù)設(shè)回調(diào)函數(shù)獲取腳本文件中包含的HTML(HyperText Markup Language,超文本標(biāo)記語言)內(nèi)容;該腳本文件中的HTML內(nèi)容預(yù)先封裝在函數(shù)聲明中;
[0009]根據(jù)獲取到的HTML內(nèi)容在第一頁(yè)面中執(zhí)行相應(yīng)操作。
[0010]在一種可能的實(shí)現(xiàn)方式中,該HTML內(nèi)容封裝在函數(shù)聲明所指示的方法的返回值部分;
[0011]通過預(yù)設(shè)回調(diào)函數(shù)獲取腳本文件中包含的HTML內(nèi)容,包括:
[0012]通過該預(yù)設(shè)回調(diào)函數(shù)執(zhí)行函數(shù)聲明所指示的方法;
[0013]獲取該方法的返回值部分。
[0014]在一種可能的實(shí)現(xiàn)方式中,根據(jù)獲取到的HTML內(nèi)容在第一頁(yè)面中執(zhí)行相應(yīng)操作,包括:
[0015]對(duì)獲取到的HTML內(nèi)容的全部?jī)?nèi)容或指定的部分內(nèi)容進(jìn)行解析,并在第一頁(yè)面中進(jìn)行顯示。
[0016]在一種可能的實(shí)現(xiàn)方式中,該腳本文件是第二頁(yè)面對(duì)應(yīng)的HTML文件經(jīng)過編譯工具編譯后轉(zhuǎn)換得到的,該HTML文件中包含HTML內(nèi)容。
[0017]在一種可能的實(shí)現(xiàn)方式中,該HTML內(nèi)容預(yù)先經(jīng)過去除注釋處理和/或去除換行符處理。
[0018]第二方面,提供了一種內(nèi)容獲取裝置,該裝置包括:
[0019]加載模塊,用于通過script方式加載第一頁(yè)面中包含的第二頁(yè)面對(duì)應(yīng)的腳本文件;第一頁(yè)面與第二頁(yè)面所在域不同;
[0020]獲取模塊,用于通過預(yù)設(shè)回調(diào)函數(shù)獲取該腳本文件中包含的HTML內(nèi)容;該腳本文件中的HTML內(nèi)容預(yù)先封裝在函數(shù)聲明中;
[0021]操作模塊,用于根據(jù)獲取到的HTML內(nèi)容在第一頁(yè)面中執(zhí)行相應(yīng)操作。
[0022]在一種可能的實(shí)現(xiàn)方式中,HTML內(nèi)容封裝在函數(shù)聲明所指示的方法的返回值部分;
[0023]獲取模塊,包括:
[0024]執(zhí)行子模塊,用于通過預(yù)設(shè)回調(diào)函數(shù)執(zhí)行函數(shù)聲明所指示的方法;
[0025]獲取子模塊,用于獲取方法的返回值部分。
[0026]在一種可能的實(shí)現(xiàn)方式中,操作模塊,還用于對(duì)獲取到的HTML內(nèi)容的全部?jī)?nèi)容或指定的部分內(nèi)容進(jìn)行解析,并在第一頁(yè)面中進(jìn)行顯示。
[0027]在一種可能的實(shí)現(xiàn)方式中,腳本文件是第二頁(yè)面對(duì)應(yīng)的HTML文件經(jīng)過編譯工具編譯后轉(zhuǎn)換得到的,該HTML文件中包含HTML內(nèi)容。
[0028]在一種可能的實(shí)現(xiàn)方式中,該HTML內(nèi)容預(yù)先經(jīng)過去除注釋處理和/或去除換行符處理。
[0029]本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0030]通過script方式加載第一頁(yè)面中包含的第二頁(yè)面對(duì)應(yīng)的腳本文件,第一頁(yè)面與第二頁(yè)面所在域不同,使用預(yù)設(shè)回調(diào)函數(shù)獲取該腳本文件中包含的HTML內(nèi)容,并根據(jù)獲取到的HTML內(nèi)容在第一頁(yè)面中執(zhí)行相應(yīng)操作;解決了通過服務(wù)器代理的方式實(shí)現(xiàn)跨域訪問,需要預(yù)先在服務(wù)器中建立代理,開發(fā)成本較高,且服務(wù)器的處理壓力較大的問題;達(dá)到了預(yù)先采用函數(shù)聲明式的封裝方式將頁(yè)面對(duì)應(yīng)的HTML內(nèi)容封裝在腳本文件中,當(dāng)瀏覽器需要跨域訪問該頁(yè)面時(shí),只需要使用script方式加載該頁(yè)面對(duì)應(yīng)的腳本文件,即可獲取到該頁(yè)面的HTML內(nèi)容,整個(gè)訪問過程由瀏覽器執(zhí)行,不需要在服務(wù)器設(shè)置代理,從而減輕服務(wù)器的處理壓力,降低開發(fā)成本。
[0031]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1是本發(fā)明一個(gè)實(shí)施例提供的內(nèi)容獲取方法的方法流程圖;
[0034]圖2A是本發(fā)明另一個(gè)實(shí)施例提供的內(nèi)容獲取方法的方法流程圖;
[0035]圖2B是圖2A提供的內(nèi)容獲取方法所涉及的HTML內(nèi)容獲取過程的方法流程圖;
[0036]圖3是本發(fā)明一個(gè)實(shí)施例提供的內(nèi)容獲取裝置的結(jié)構(gòu)方框圖;
[0037]圖4是本發(fā)明另一個(gè)實(shí)施例提供的內(nèi)容獲取裝置的結(jié)構(gòu)方框圖。
【具體實(shí)施方式】
[0038]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0039]本發(fā)明各個(gè)實(shí)施例提供的內(nèi)容獲取方法,可以由安裝有瀏覽器的電子設(shè)備來實(shí)現(xiàn)。該電子設(shè)備可以是智能電視、智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(MovingPicture Experts Group Aud1 Layer III,動(dòng)態(tài)影像壓縮標(biāo)準(zhǔn)音頻層面 3)、MP4 (MovingPicture Experts Group Aud1 Layer IV,動(dòng)態(tài)影像壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
[0040]為了簡(jiǎn)化描述,下文中僅以內(nèi)容獲取方法由電子設(shè)備中安裝的瀏覽器執(zhí)行來舉例說明,但對(duì)此不構(gòu)成限定。
[0041]為了方便理解,首先對(duì)兩個(gè)頁(yè)面所在域不同的具體情況進(jìn)行說明。以兩個(gè)頁(yè)面分別為第一頁(yè)面和第二頁(yè)面為例,第一頁(yè)面和第二頁(yè)面不屬于同一域包括下面幾種情況。
[0042]1、同一域名,不同端口。
[0043]比如,第一頁(yè)面的url (Uniform Resource Locator,同一資源定位符)為 http://www.a.com:8000/a.js,第二頁(yè)面的 url 為 http://www.a.com/b.js,
[0044]2、同一域名,不同協(xié)議。
[0045]比如,第一頁(yè)面的url 為 http://www.a.com/a.js,第二頁(yè)面的 url 為 https://www.a.com/b.js。
[0046]3、域名和域名對(duì)應(yīng)IP (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)。
[0047]比如,第一頁(yè)面的url采用域名方式表示為http://www.a.com/a.js,第二頁(yè)面的url 采用 IP 地址方式表示為 http://70.32.92.74/b.js。
[0048]4、主域相同,子域不同。
[0049]比如,第一頁(yè)面的url 為 http://www.a.com/a.js,第二頁(yè)面的 url 為 http://script, a.com/b.js。
[0050]5、域名不同。
[0051]比如,第一頁(yè)面的url 為 http://www.a.com/a.js,第二頁(yè)面的 url 為 http://www.b.com/b.js。
[0052]圖1是本發(fā)明一個(gè)實(shí)施例提供的內(nèi)容獲取方法的方法流程圖。本實(shí)施例以該內(nèi)容獲取方法應(yīng)用于電子設(shè)備中安裝的瀏覽器來舉例說明。該方法包括:
[0053]步驟102,通過script方式加載第一頁(yè)面中包含的第二頁(yè)面對(duì)應(yīng)的腳本文件;第一頁(yè)面與第二頁(yè)面所在域不同。
[0054]通常情況下,該腳本文件的文件類型可以為.js格式,在其他可能的實(shí)現(xiàn)方式中,該腳本文件還可以采用其他預(yù)定的文件類型,本發(fā)明并不對(duì)此進(jìn)行限定。
[0055]步驟104,通過預(yù)設(shè)回調(diào)函數(shù)獲取腳本文件中包含的HTML內(nèi)容;該腳本文件中的HTML內(nèi)容預(yù)先封裝在函數(shù)聲明中。
[0056]由于采用script方式默認(rèn)獲取的為腳本文件,若采用script方式直接獲取第二頁(yè)面對(duì)應(yīng)的HTML文件,瀏覽器會(huì)因?yàn)閷TML文件當(dāng)做腳本文件執(zhí)行而報(bào)錯(cuò),導(dǎo)致無法完成訪問,所以在開發(fā)第二頁(yè)面的過程中,預(yù)先通過編譯工具將第二頁(yè)面對(duì)應(yīng)的HTML文件轉(zhuǎn)換為腳本文件,并將HTML文件中的