2011-04-07 37 views
3

我們有一個擴展需要在用戶加載的每個頁面上觸發。我們試圖在調度塊中使用域「。*」來完成此操作。雖然這在firefox和chrome中效果很好,但IE並沒有尊重這一點。調度域*在IE中不起作用

這是一個已知問題還是有任何解決方法的域「。*」?不幸的是,我們處於一種獨特的情況,我們無法列出所有想要將我們的擴展程序解僱的域名。

回答

4

看起來像我找到了我自己的問題的答案。

它看起來並不像Kynetx IE版本支持開箱即用。它是目前使用C#的功能:

if (document.domain.EndsWith(domain)) 
{ 
    plantTags = true; 
    break; 
} 

plantTags是用來顯示把擴展代碼的頁面或不按標誌。 EndsWith只是看到當前字符串(document.domain)是否以你傳遞的任何內容結束。知道這一點,你可以把域名「.com」域名「.net」等,它應該在所有頁面上工作,但我沒有測試這個。從

using System.Text.RegularExpressions; 

然後改變線182-190:

foreach (String domain in domainlist) 
{ 
    //reportMessage("onDocComplete", "Matching " + domain + " to doc domain " + document.domain); 
    if (document.domain.EndsWith(domain)) 
    { 
     plantTags = true; 
     break; 
    } 
} 

相反,我剛通過在文件中添加該第6行BHO/BHO.cs使用正則表達式:

foreach (String domain in domainlist) 
{ 
    Regex objDomainPattern = new Regex(domain); 
    //reportMessage("onDocComplete", "Matching " + domain + " to doc domain " + document.domain); 
    if (objDomainPattern.IsMatch(document.domain)) 
    { 
     plantTags = true; 
     break; 
    } 
} 

從那裏我只是不得不重新編譯擴展代碼(說明包含在下載的源代碼如何t o做到這一點),我離開了!我的IE擴展現在將根據來自域塊的正則表達式進行匹配。希望有一天能幫助別人!

+1

當你解決自己的問題時加分! – TelegramSam 2011-04-07 20:53:21

+1

我認爲你自己也可以獲得l33t點的擴展源代碼。幹得不錯! – 2011-04-07 21:06:48