3
我們有一個擴展需要在用戶加載的每個頁面上觸發。我們試圖在調度塊中使用域「。*」來完成此操作。雖然這在firefox和chrome中效果很好,但IE並沒有尊重這一點。調度域*在IE中不起作用
這是一個已知問題還是有任何解決方法的域「。*」?不幸的是,我們處於一種獨特的情況,我們無法列出所有想要將我們的擴展程序解僱的域名。
我們有一個擴展需要在用戶加載的每個頁面上觸發。我們試圖在調度塊中使用域「。*」來完成此操作。雖然這在firefox和chrome中效果很好,但IE並沒有尊重這一點。調度域*在IE中不起作用
這是一個已知問題還是有任何解決方法的域「。*」?不幸的是,我們處於一種獨特的情況,我們無法列出所有想要將我們的擴展程序解僱的域名。
看起來像我找到了我自己的問題的答案。
它看起來並不像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擴展現在將根據來自域塊的正則表達式進行匹配。希望有一天能幫助別人!
當你解決自己的問題時加分! – TelegramSam 2011-04-07 20:53:21
我認爲你自己也可以獲得l33t點的擴展源代碼。幹得不錯! – 2011-04-07 21:06:48