2012-01-29 99 views
0

以下是此Google Chrome瀏覽器擴展程序的基本代碼。如果您希望看到該擴展程序的實際運行情況,請將其從網上商店下載下來,以便了解它的工作原理。 Extension Link

function checkForHat() { 
    $.get (
     'http://www.roblox.com/User.aspx?ID=1', 

     function parse(data) { 
      $(data).ready(function() { 
       var epicness = $(data).find('#ctl00_cphRoblox_rbxUserAssetsPane_AssetCategoryRepeater_ctl02_AssetCategorySelector'); 
       var epiclink = epicness.attr('href'); 
       eval(epiclink) 
       var hatid1 = $(data).find('#ctl00_cphRoblox_rbxUserAssetsPane_UserAssetsDataList_ctl00_AssetThumbnailHyperLink'); 
       var hatidtitle1 = hatid1.attr('title'); 
       var hatidhref1 = "http://www.roblox.com" + hatid1.attr('href'); 
       var hatidpi1 = $(hatid1).find('img') 
       var hatidpic1 = hatidpi1.attr('src') 
       hatLink1 = hatidhref1; 
       hatTitle1 = hatidtitle1; 
       hatPic1 = hatidpic1; 
       var hatid2 = $(data).find('#ctl00_cphRoblox_rbxUserAssetsPane_UserAssetsDataList_ctl01_AssetThumbnailHyperLink'); 
       var hatidtitle2 = hatid2.attr('title'); 
       var hatidhref2 = "http://www.roblox.com" + hatid2.attr('href'); 
       var hatidpi2 = $(hatid2).find('img') 
       var hatidpic2 = hatidpi2.attr('src') 
       hatLink2 = hatidhref2; 
       hatTitle2 = hatidtitle2; 
       hatPic2 = hatidpic2; 
       var hatid3 = $(data).find('#ctl00_cphRoblox_rbxUserAssetsPane_UserAssetsDataList_ctl02_AssetThumbnailHyperLink'); 
       var hatidtitle3 = hatid3.attr('title'); 
       var hatidhref3 = "http://www.roblox.com" + hatid3.attr('href'); 
       var hatidpi3 = $(hatid3).find('img') 
       var hatidpic3 = hatidpi3.attr('src') 
       hatLink3 = hatidhref3; 
       hatTitle3 = hatidtitle3; 
       hatPic3 = hatidpic3; 
       if (hatLink3 != null && hatTitle3 != null && hatPic3 != null) { 
        checkIfNew3(); 
       } 
       if (hatLink2 != null && hatTitle2 != null && hatPic2 != null) { 
        checkIfNew2(); 
       } 
       if (hatLink1 != null && hatTitle1 != null && hatPic1 != null) { 
        checkIfNew1(); 
       } 
      }); 
     } 
    ); 
}; 

如果你注意到開始我有一個評估聲明。我認爲這隻適用於實際的擴展本身,但我想要做的是使用:$.get。有沒有辦法加載該網頁,並在該網頁上切換標籤頁,如果有,如何? (這些標籤位於名爲Gear,Shirts,Pants等的底部)

+1

什麼是eval應該做的? – nnnnnn 2012-01-29 03:46:52

回答

1

我再次無法發表評論。所以我堅持這樣。

你爲什麼在URL上使用eval? Eval只能執行有效的JavaScript。這是一個強大但危險的程序。

你要求加載一個網頁,我看你使用jQuery。我不知道你在努力達到什麼目的。而且我不想暫時安裝這個擴展,因爲這太耗時。但是,您可以使用$.ajax以任何您想要的格式加載內容,包括純文本和整個HTML樹。這非常強大,因爲它允許您在後臺加載網站,並且在用戶不知道的情況下進行一些流程簡化。

如果您提供更多信息,我可以爲您的案例創建一個場景。

EDITH:

我現在的工作我的方式,通過腳本,發現一種以編程方式更改選項卡。但我不知道你是否可以使用它。我不確定網站如何獲取信息。你將不得不做一些測試。

然而,這是我想出:

你要調用的函數WebForm_DoPostBackWithOptions,使一種模式,所有可用的選項卡。例如,請求齒輪選項卡的內容,谷歌瀏覽器,請嘗試執行這個小片段:

// Save a pattern. We will have to replace the %n toward the end of the string. 
var pattern = "ctl00$cphRoblox$rbxUserAssetsPane$AssetCategoryRepeater$ctl%n$AssetCategorySelector"; 

WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(pattern.replace('%n', '02'), '', true, '', '', false, true)); 

我希望內容是使用AJAX加載的,所以你可能發現,從加載內容的URL 。這個網站讓我很困惑。它提交一個表單有效地加載新的內容,無需重新加載和onsubmit處理程序?我在這裏沒有看到任何AJAX。如果開發者打算隱瞞他的代碼,他完全成功了。

你會想要考慮我的其他帖子之一here關於內容腳本的範圍,以及如何繞過對網站變量和功能的訪問限制。

我希望你能用這個工作。如果你真的想完成這個擴展,我相信你會找到一個方法。但說實話,這對於我將在短短几分鐘內處理的事情來說太費事了。

+0

當我加載網頁(http://www.roblox.com/User.aspx?ID=1)時,它會加載在帽子選項卡上,所以我很容易從它獲得所需的一切,但我可​​以由於他們的編碼方式,他們沒有得到任何與Gear,Pants,Shirts等相關的東西。這對我來說是一種極端的痛苦,因爲實際上沒有真正的方法來切換標籤到設備。他們似乎正在加載內容,因爲您點擊了標籤並且沒有隱藏它。如果你願意,我可以鏈接到一個Ajax教程? – Jopc67 2012-01-29 03:51:41

+0

我檢查了網站,我現在明白你爲什麼要「評估」href屬性。給我一些時間,我會通過腳本稍微查看一下,然後我可以提供更好的解決方案。不過,我已經使用[this](http://www.tizag.com/ajaxTutorial/)教程,因爲AJAX仍然不常見,但剛剛發現w3schools還提供了[教程](http:// www。 w3schools.com/ajax/default.asp)。 – Kiruse 2012-01-29 04:01:07

相關問題