首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript :- ExtJS el.dom.innerHtml删除了IE上的<link>和<style>标签,只有它可以很好地工作在火狐上。当el.dom.innerHtml分配html字符串时

Javascript :- ExtJS el.dom.innerHtml删除了IE上的<link>和<style>标签,只有它可以很好地工作在火狐上。当el.dom.innerHtml分配html字符串时
EN

Stack Overflow用户
提问于 2011-03-12 15:00:57
回答 1查看 2.7K关注 0票数 0

对于FireFox el.dom.innerHTML

代码语言:javascript
复制
<title>Test</title>
<link rel="stylesheet" type="text/css" href="common.css">

测试

对于IE el.dom.innerHTML

测试

在FF中,返回的el.dom.innerhtml包含和标记,但在IE中不包含。这些被Ext过滤掉了吗?如果是,为什么?

在此论坛链接下面,给出了覆盖Ext.element.Update方法的解决方案。

代码语言:javascript
复制
Ext.override(Ext.Element, {
    update : function(html, loadScripts, callback){
}

http://www.sencha.com/forum/showthread.php?30110-internet-explorer-autoLoad-css-not-applied

但我有一个问题,我把这个函数添加到哪个ExtJs文件中。因为ext-all-2.2.js和ext-base-2.2是ExtJs库的核心文件。我把这段代码放在ExtExtension-2.2.js文件中,但是当赋值this.el.dom.innerHtml=Markup (标记是包含html字符串的字符串)时,覆盖更新方法不会触发。

请告诉我我把哪个ExtJs文件放入函数。Ext.Override(Ext.Element)更新方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-13 06:13:52

该覆盖只需要在加载Ext脚本之后的某个时间运行。因此,在包含Ext文件之后再包含一个javascript文件,该方法将被覆盖。

代码语言:javascript
复制
<script type="text/javascript" src="/path/to/ext-all-2.2.js"></script>
<script type="text/javascript" src="/path/to/myscript.js"></script>

in myscript.js:

代码语言:javascript
复制
Ext.override(Ext.Element, {
    update : function(html, loadScripts, callback){
        ...
    }
}

但是请记住,Ext不是魔术。当简单地分配innerHTML时,它不能自动触发update函数,因为这完全是由浏览器处理的。相反,直接使用update函数,这将更新innerHTML:

而不是:

代码语言:javascript
复制
this.el.dom.innerHtml=Markup;

使用:

代码语言:javascript
复制
this.el.update(Markup);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5281133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档