2012-10-01 35 views
0

我有一個很奇怪的問題,只發生在谷歌瀏覽器上。 由於該項目的規模,我不能真正提供測試用例(相信我,我嘗試過)。 的問題是,加載一些HTML(包含腳本)放入容器與Ajax調用這樣後:谷歌chrome javascript通過ajax加載後只能在第一次點擊後運行

var fillView = function(data) { 
    viewElement.html(data); 
} 

$.ajax({ 
    url: gridUrl + 'update/id/' + rowData.id + gridUrlParams, 
    success: fillView 
}); 

...中所有的,data不會在谷歌瀏覽器得到執行,直到我的JavaScript點擊文件。這適用於綁定到表單中的輸入字段的幾個不同的插件。我無法在任何其他瀏覽器中觀察(或複製)任何此類效果,也不會添加任何可以執行此類操作的代碼。

我試了好幾個小時才弄到這個核心,去掉了前半部分受影響的輸入域,然後是另一半,然後是它的一部分......只是讓這種情況發生在剩下的部分。我也嘗試剝去/註釋掉其他大部分JavaScript,我不需要(不應該也不會被調用)當前網站。

似乎有一個相當明顯的「修復」,這不是一個修復,也有時只是有效。如果你沒有猜它):

setTimeout("$('#form').trigger('click')",50); 

滑稽/奇詳細信息:

如果我添加alert("test");的JavaScript,得到它的權利在頁面加載執行,但影響了UI的東西不直到第一次點擊瀏覽器的任何地方。

$%&§$} $ !!!!

UPDATE:

添加以下內容:

$('.field-block').css('background-color','#000'); 

的AJAX調用的結果,也做什麼,直到我點擊瀏覽器窗口內。

「我的拉丁語在這裏結束。」有沒有人聽說過這個,看過它或有一個想法,我可以嘗試解決這個討厭的問題。

+0

警報得到執行的事實讓我覺得你有一些其他的問題是你正在追加的JS內部。你有沒有嘗試過簡單的改變身體的風格或類似的東西? – m90

+0

你是指什麼樣的問題?控制檯中沒有錯誤。請參閱我的編輯 –

+0

也許您已啓用調試器?也許有奇怪的谷歌瀏覽器插件阻止直接腳本執行? – jolt

回答

1

問題是圍繞受影響的輸入的細節標記。Firefox中的polyfill工作得很好,似乎本質上它們還沒有準備好用於生產使用。

相關問題