Javascript bookmarklet的普遍接受的设计模式是什么?
最好插入iFrame并在其中执行任何需要执行的操作,这样就不会因为额外的脚本、CSS样式等而使页面混乱?当您无法在主窗口和iFrame之间进行对话时,如何检测事情是否已完成并删除iFrame 可以将脚本/CSS插入DOM并在其中执行工作吗Javascript bookmarklet的普遍接受的设计模式是什么?,javascript,design-patterns,bookmarklet,Javascript,Design Patterns,Bookmarklet,最好插入iFrame并在其中执行任何需要执行的操作,这样就不会因为额外的脚本、CSS样式等而使页面混乱?当您无法在主窗口和iFrame之间进行对话时,如何检测事情是否已完成并删除iFrame 可以将脚本/CSS插入DOM并在其中执行工作吗 我的主要示例是Instapaper bookmarklet,它使用iFrame并在完成所有操作后将其关闭。我所做的所有bookmarklet都直接插入主页的DOM中。所有代码都存在于该bookmarklet的名称空间中,因此DOM污染保持在最低限度,当然还有一
我的主要示例是Instapaper bookmarklet,它使用iFrame并在完成所有操作后将其关闭。我所做的所有bookmarklet都直接插入主页的DOM中。所有代码都存在于该bookmarklet的名称空间中,因此DOM污染保持在最低限度,当然还有一些检查以确保与现有变量名没有冲突 插入到主文档的DOM中的原因是因为它使一切变得更容易-很少有任何好的理由让您自己变得更难:)
当然,这取决于你的目标。我所做的所有bookmarklet都直接插入到主页的DOM中。所有代码都存在于该bookmarklet的名称空间中,因此DOM污染保持在最低限度,当然还有一些检查以确保与现有变量名没有冲突 插入到主文档的DOM中的原因是因为它使一切变得更容易-很少有任何好的理由让您自己变得更难:) 当然,这取决于你的目标。模式1:
javascript:void(document.title += 'HAI!')
任何bookmarklet返回值都会转换为字符串,并充当传递给document.write的角色
void
操作员阻止它
模式2:
javascript:(function(){ for ( var i = 0; i < document.images.length; i++ ) document.images[i].title = document.images[i].alt; })()
javascript:(function(){for(var i=0;i
bookmarklet在全局范围内运行,因此如果没有匿名函数代码,上面的循环计数器将作为窗口“泄漏”。i
模式1:
javascript:void(document.title += 'HAI!')
任何bookmarklet返回值都会转换为字符串,并充当传递给document.write的角色
void
操作员阻止它
模式2:
javascript:(function(){ for ( var i = 0; i < document.images.length; i++ ) document.images[i].title = document.images[i].alt; })()
javascript:(function(){for(var i=0;i
bookmarklet在全局范围内运行,因此如果没有上面的匿名函数代码,则会将循环计数器“泄漏”为window.i