我正在研究一个嵌入式
JavaScript,将HTML元素插入未知页面.我无法控制我将插入HTML的页面的样式表.问题是我插入的HTML将错误地被页面风格化,我想防止这一点.
确保我插入的元素完全按照我想要的那样,最少的冗长和/或资源密集度是多少?有没有一个简单的方法来清除给定的HTML元素和孩子的所有样式?例如,在firebug中,您可以删除所有样式.我觉得有必要,而且至少应该是一种本地的方式来将某些HTML元素免除样式表规则?
例:
var myHTML = $("<div>my html in here</div>"); myHTML.resetAllStyles(); //<--- what would this function do? myHTML.appendTo("body");
我真的想避免明确说明我所插入的每个元素的属性
PS:我有很多JS和CSS的经验,所以你可以假设我会很了解你要告诉我的任何事情.
解决方法
我会把它当作一种可能性.您的书签的自定义标签如何?由于IE而需要更多修改自定义xml命名空间,但可能对您有用.
jQuery似乎也不介意.
jQuery的:
$('#tester').animate({opacity: .3},1000);
HTML:
// Not the main HTML tags. These are embedded in the body as the root // of the bookmarklet. Scary? Perhaps. <html xmlns:customtag> <style> @media all { customtag\:someElement { width:100px; height: 100px; background: blue; display: block; } customtag\:someOtherElement { width: 50px; height: 50px; background: red; display: block; } } </style> <customtag:someElement id='tester'>test</customtag:someElement> <customtag:someOtherElement>test</customtag:someOtherElement> </html>
http://happyworm.com/blog/tag/custom-tags/
编辑:
看起来IE希望在HTML标签中定义xmlns,所以我将容器更改为< html> ;.总体上不了解后果,但似乎有效. 我更新了例子和jsFiddle.