javascript - JavaScript 有可能重写自己吗?

标签 javascript internet-explorer

我正在开发一个 AJAX 网站。现在我遇到了标准 JavaScript 和 Microsoft 的 JavaScript 方言之间的一些差异。

例如 .textContent(标准)与 .text(微软) 我可以制作两个文件,一个用于标准浏览器,一个用于 Microsoft 浏览器,但如果我进行更改,我需要进行两次,因此,这不是一个理想的选择。 每次遇到 .textContent 时都放置 if 语句似乎也不是最佳解决方案。

所以,我在考虑一个基于脚本的解决方案,我想到了这样的事情:


function translate_to_msie_dialect(){
    var s = document.getElementsByTagName("script");
    var l = s.length;
    var i;
    for ( i = 0 ; i < l ; i ++ ) {
        var src = s[i].text;
        s[i].text = src.replace(/.textContent/g, ".text");
    }
  }


我已经在 Internet Explorer 版本 8 上测试了这段代码,它似乎 做它的工作。 (从 ie 翻译成标准似乎不起作用, 标准浏览器似乎改为执行未更改的代码)

问题是,这只适用于内联脚本,不适用于 js 源文件 脚本。是否可以为 javascript 文件执行此转换脚本 客户端?

我可以检查用户代理(服务器端),但我宁愿这样做 检查方言本身,因为某些浏览器支持“识别为” 功能,如果他们将自己标识为 ie,他们可能会进入 他们听不懂的方言。

最佳答案

为什么不从其他人已经经历过的头痛中受益呢?您不是第一个遇到这些跨浏览器问题的人。请使用类似 jQuery 的库,它会为您修复这些问题。然后你可以专注于更重要的事情:)

关于javascript - JavaScript 有可能重写自己吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063782/

相关文章:

javascript - 网页应仅适用于 800 x 600 像素及以上的分辨率

javascript - IE 7 "stop running this script"错误使用 jQuery

html - 我怎样才能让 Internet Explorer 理解我的 SVG css

javascript - 如何在初始加载后将脚本加载到 XUL 应用程序中

javascript - Firebug 网络监视器如何工作?

javascript - 为什么我的Meteor方法404

javascript - $(document).ready(function () Uncaught ReferenceError : is not defined

javascript - 选择标签的 document.getElementById 在 IE 中给出对象错误

javascript - Internet Explorer Javascript 的 AppendChild 问题

ruby-on-rails - 网站导致 IE 崩溃并需要重新启动(!)