2011-01-21 34 views
1

是否最好插入一個iFrame,並在那裏做任何需要做的事情,以免混淆頁面中的額外腳本,CSS樣式等?如果您無法在主窗口和iFrame之間進行通話,您如何檢測到事情已經完成並移除了iFrame?什麼是一般公認的Javascript書籤設計模式?

是否可以將腳本/ CSS插入到DOM中並在那裏進行工作?

我的主要示例是Instapaper bookmarklet,它使用iFrame並在全部完成時關閉它。

回答

1

我所做過的所有書籤都直接插入到主頁面的DOM中。所有代碼都存在於該書籤的命名空間內,所以DOM污染保持在最低限度,當然還有檢查以確保與現有變量名稱沒有衝突。

原因插入到主文檔的DOM是因爲它讓一切更容易 - 很少有什麼正當理由,使其更難對自己比它是:)

當然,不過這取決於在你的目標上。

0

模式1:

javascript:void(document.title += 'HAI!') 

,因爲它是通過對document.write void操作者任何書籤返回值被轉換的toString和行爲防止它

圖案2:

javascript:(function(){ for (var i = 0; i < document.images.length; i++) document.images[i].title = document.images[i].alt; })() 

bookmarklets在全局範圍內運行,所以上面沒有匿名函數代碼會「泄漏」循環計數器,如window.i