如何将样式注入 IE8
How do I inject styles into IE8?
// create a style element
$("#main").html('<style id="custom_persona_css"></style>');
$("#custom_persona_css").append('#abc{ color:#000000; }');
如您所知,这在IE8中不起作用!
如何使其在IE8中工作?
将出现错误:"对方法或属性访问的意外调用",因为 IE8 无法将 html 识别为有效(abc 部分(
在 MSIE 中设置与 <style/>
元素相关的 styleSheet-对象的 cssText-属性:
$('<style id="custom_persona_css"></style>').appendTo('head');
if($.browser.msie)
{
$("#custom_persona_css").prop('styleSheet').cssText='#abc{ color:#000000; }';
}
else
{
$("#custom_persona_css").append('#abc{ color:#000000; }');
}
http://jsfiddle.net/doktormolle/BLJUv/
更多信息: http://msdn.microsoft.com/en-us/library/ie/ms533698%28v=vs.85%29.aspx
我同意 jmort253 的观点,也许直接修改样式属性或加载 css 文件是最好的。然后,可以使用更高效的 addClass 和 removeClass 方法。话虽如此,风格元素应该在头脑中(它们当然在正文中起作用,但我记得officially
不支持(。所以你可以为此目的做这样的事情。
http://jsfiddle.net/TCUxx/1
$('head').append('<style type="text/css">#abc{ color:#ff0000; }</style>');
已更新 - 由于某种原因,这不起作用。我不知道为什么。适用于IE9。
var $styleElement = $('<style />', {
type: 'text/css',
text: '#abc{ color:#ff0000; }'
});
$('head').append($styleElement);
你正在使用jQuery,jQuery有一个庞大的方法库,用于动态改变元素的样式:
$(selector).css(propertyName, value);
$(selector).propertyName(value);
以上只是使用 jQuery 影响由选择器标识的元素或元素组样式的两个示例。
因此,要使用 id="abc" 更改元素的颜色,可以使用以下命令:
$('#abc').css('color','#000000');
此外,如果要为元素或元素组设置主题,则可以创建一个样式.css文件,为不同的类名概述样式。然后,您可以通过向元素添加或删除类名来简单地应用样式,如下所示:
风格.css:
.custom_persona {
color:#000000;
}
.some_other_custom_style {
color:red;
background-color: #fff;
}
索引.html脚本:
$('#abc').addClass('custom_persona');
// OR
$('#abc').addClass('.some_other_custom_style');
$('#abc').removeClass('custom_persona');
jQuery CSS类别的方法和属性在哪些属性可用方面进行了更详细的介绍。 这不仅可以解决您的IE8问题,而且也可以在所有其他主要浏览器中使用。
这是否有效:
var $style = $("#custom_persona_css");
$style.html(
$style.html() + '#abc{ color:#000000; }'
);
或
$("#custom_persona_css")[0].innerHTML += '#abc{ color:#000000; }'
- Recaptcha在IE7和IE8中不起作用
- 使用Objective-C的JavaScript注入方法
- 正在注入包含JS的HTML
- 迷你$provider注入茉莉花和角
- Angularjs工厂注入错误
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- Joomla Gantry Framework ie8 LESS/CSS
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何在Ionic Android中将Javascript注入到web视图中
- 在IE8中不起作用的元素上触发单击事件
- 谷歌地图v3标记没有显示ie8和9
- 数据-在IE8中不起作用
- Android Webview通过Javascript注入CSS
- Meteor:在启动时将html注入客户端文件
- 注入工厂时,Angular停止工作
- 在IE8上使用jQuery克隆HTML5元素和事件
- 注入Javascript以选择具有指定值的所有单选按钮
- XSS通过地址栏注入
- 仅IE8 html文本框中的字符
- 如何将样式注入 IE8