我動態創建的JavaScript並將其連接到使用$我的頁面上的鏈接onclick事件(文件)。就緒()jQuery的ATTR芬克在IE
我的onclick使用JavaScript生成事件的功能,我傳遞給Google Analytics來跟蹤我的網頁上的事件,例如橫幅廣告點擊和下載的PDF。我在Google Analytics中爲除IE以外的每個瀏覽器的這些事件獲取統計信息。所以,我的代碼在IE中出現了一些問題(我在我的頁面上搜索並搜索了錯誤,但沒有發現)。
一般情況下我只是做類似$(「A」)。點擊...做的東西......但不管是什麼原因,我能得到谷歌分析事件追蹤工作的唯一方法是通過將跟蹤事件功能直接在我的鏈接上。所以我用下面的代碼注入追蹤事件功能進入我的鏈接的onclick一旦頁面加載....
// Tracks favorites on the home page.
$("._gatHomePageFavorites").each
(
function(index)
{
var description = "Content ID: " + getParameterNamedID($(this).attr("href")) + " - " + $(this).children().first().attr("alt");
$(this).attr("onclick","alert('1');_gaq.push(['_trackEvent', 'Favorites - Home Page', 'Icon Click','" + _gatCleanString(description) + "']);alert('2');");
}
);
我想我的問題是,IE瀏覽器是不是把我的代碼上的onclick。但我不知道在IE中查看生成的源代碼的好方法。我已經在地址欄中嘗試了幾個JavaScript函數來調出生成的源代碼,假設它們正常工作,那麼我的代碼不會將跟蹤事件功能注入到IE的鏈接的onclick中。我在Firefox的視圖生成源中查看onclick中的跟蹤事件功能。
至於另一項測試,你可以看到我加在我的跟蹤事件功能可按警報。在FF中,兩個警報均觸發,在IE中都沒有警報觸發器。
還有一個一塊信息。我的Google Analytics(分析)不會記錄任何IE瀏覽器的事件。據我所知,我的問題不是特定於一個版本的IE。
我怎麼能知道我的動態JavaScript是進入的onclick的IE瀏覽器,然後我能做些什麼來讓它進入的onclick的IE?
UPDATE 爲了簡化問題並集中解答的方向,我刪除了Google Analytics事件函數。現在,我所做的只是將alert()注入onlick。 IE甚至不會觸發警報()。我曾嘗試以下...
// Tracks favorites on the home page.
$("._gatHomePageFavorites").each
(
function(index)
{
$(this).attr("onclick","alert('1')");
}
);
和
// Tracks favorites on the home page.
$("._gatHomePageFavorites").each
(
function(index)
{
$(this).attr("onclick","setTimeout(\"alert('1')\", 1000);return false");
}
);
所以我還是對我的javascript倚沒有被注入到IE中的onclick。
什麼是IE瀏覽器來查看生成的源最可靠的方法是什麼?
如果我可以確認我的代碼沒有被注入鏈接的onclick屬性,那麼我至少可以回答Google Analytics爲什麼不跟蹤IE的事件。這將是因爲我注入的代碼不存在於IE中。
嘗試在document.ready之後和掛鉤之前添加100ms超時.click() – 2012-01-05 16:11:56
如果鏈接正在離開頁面,則未獲取統計信息可能會對競爭條件做出反應。 – epascarello 2012-01-05 16:29:51
我想過這個,但我想如果我添加alert()到onclick,我不會嘗試這種延遲破解。如果我在鏈接的onclick事件中有alert(),alert()應該觸發,而不需要延遲。但是......我一直試圖弄清楚這個問題很久,所以我會試試看。 – user1132517 2012-01-05 16:37:51