我正在尝试使用预览功能制作一个实时的页内css编辑器,该功能可以重新加载样式表并应用它而无需重新加载页面.最好的方法是什么?
可能不适用于您的情况,但这是我用于重新加载外部样式表的jQuery函数:
/** * Forces a reload of all stylesheets by appending a unique query string * to each stylesheet URL. */ function reloadStylesheets() { var queryString = '?reload=' + new Date().getTime(); $('link[rel="stylesheet"]').each(function () { this.href = this.href.replace(/\?.*|$/, queryString); }); }
在"编辑"页面上,不是以正常方式包含CSS(带标记),而是将其全部写入
标记.编辑它的
innerHTML
属性将自动更新页面,即使没有到服务器的往返.
Javascript,使用jQuery:
jQuery(function($) { var $ed = $('#editor') , $style = $('#styles') , $button = $('#preview') ; $ed.val($style.html()); $button.click(function() { $style.html($ed.val()); return false; }); });
这应该是它!
如果你想要真正的花哨,将功能附加到textarea上的keydown,虽然你可能会得到一些不必要的副作用(页面会在你键入时不断变化)
编辑:测试和工作(在Firefox 3.5中,至少,但对其他浏览器应该没问题).请参阅此处的演示:http://jsbin.com/owapi