浏览器兼容性 [英] Browser compatibility

查看:108
本文介绍了浏览器兼容性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从互联网上的示例拼凑了以下函数,以便在父表单中设置名为spanned items的
。它适用于IE,但不适用于netscape的

。我还需要测试哪些其他浏览器条件和



sode的正确语法是什么,以便我能够满足所有情况?谢谢!


函数WriteContent(name,newText)

{

var browser = navigator.appName

var version = parseInt(navigator.appVersion)


if(browser ==" Microsoft Internet Explorer")

eval(" self.opener .document.all。" + name +" .innerHTML =''" + newText +"''");

else

{

self.opener.document.layers [name] .document.close();

self.opener.document.layers [name] .document.write(newText);

self.opener.document.layers [name] .document.close();
}

}

I cobbled together the following function from examples on the internet to
set named spanned items in the parent form. It works fine for IE but not at
all for netscape. What other browser conditions do I need to test for and
what is the correct syntax for the
sode so that I am covered for all cases? Thanks!

function WriteContent(name, newText)
{
var browser=navigator.appName
var version=parseInt(navigator.appVersion)

if (browser=="Microsoft Internet Explorer")
eval("self.opener.document.all."+name+".innerHTML= ''"+newText+"''");
else
{
self.opener.document.layers[name].document.close();
self.opener.document.layers[name].document.write(newText);
self.opener.document.layers[name].document.close();
}
}

推荐答案

在文章< 3fytb.399968
In article <3fytb.399968


6C4.164347@pd7tw1no>," Simon Wigzell"

< si ********** @ shaw.ca>写道:
6C4.164347@pd7tw1no>, "Simon Wigzell"
<si**********@shaw.ca> writes:

我拼凑了互联网上的例子中的以下功能,以便在父表单中设置命名的跨区项目。它适用于IE,但不适用于所有netscape。我需要测试哪些其他浏览器条件以及
什么是
sode的正确语法,以便我能够满足所有情况?谢谢!

函数WriteContent(name,newText)
{var browser = navigator.appName
var version = parseInt(navigator.appVersion)
<如果(浏览器==" Microsoft Internet Explorer")eval(" self.opener.document.all) 。" + name +" .innerHTML =''" + newText +"''");


无需eval:

self.opener.document.all [name] .innerHTML =

else
{
self.opener.document.layers [name] .document.close();
self.opener.document.layers [name] .document.write(newText);
self。 opener.document.layers [name] .document.close();
}
}

I cobbled together the following function from examples on the internet to
set named spanned items in the parent form. It works fine for IE but not at
all for netscape. What other browser conditions do I need to test for and
what is the correct syntax for the
sode so that I am covered for all cases? Thanks!

function WriteContent(name, newText)
{
var browser=navigator.appName
var version=parseInt(navigator.appVersion)
ditch the unreliable .appName and .appVersion
if (browser=="Microsoft Internet Explorer")
eval("self.opener.document.all."+name+".innerHTML= ''"+newText+"''");
no eval needed:
self.opener.document.all[name].innerHTML =
else
{
self.opener.document.layers[name].document.close();
self.opener.document.layers[name].document.write(newText);
self.opener.document.layers[name].document.close();
}
}




你覆盖document.all和document.layers一样,

使用getElementById的现代浏览器怎么样?


注意浏览器缺乏关注:

函数WriteContent(name,newText){

if(document.getElementById)

{

//使用getElementById

self.opener.document.getElementById(name).innerHTM L = newText;

//通过innerHTML插入文本与DOM相比效率低

//方法。

}

其他

{

if(document.all)

{

self.opener.document.all [name] .innerHTML = newText;

}

else

{

if(document.layers)

{

//document.layers声明这里

}

其他

{

alert(''你的浏览器似乎不支持动态内容插入'');

}

}

}


绝对*不关心它是什么浏览器,但它有什么特色

支持。
http://www.jibbering.com/faq/#FAQ4_26


作为附注:

alert(navigator.appName)


在AOL浏览器中执行时会显示Microsoft Internet Explorer。但它远不是同一个浏览器。

。并且在尝试确定我的浏览器时显示依赖

..appName的谬误。

-

Randy



You cover document.all and document.layers, what about the modern browsers that
use getElementById?

Note the lack of concern about the browser:

function WriteContent(name, newText){
if (document.getElementById)
{
//use getElementById
self.opener.document.getElementById(name).innerHTM L = newText;
//inserting text via innerHTML is inefficient when compared to DOM
//methods.
}
else
{
if (document.all)
{
self.opener.document.all[name].innerHTML = newText;
}
else
{
if (document.layers)
{
//document.layers statements here
}
else
{
alert(''You''re browser seems not to support dynamic content insertion'');
}
}
}

And absolutely *no* concern about what browser it is, but what features it
supports.
http://www.jibbering.com/faq/#FAQ4_26

As a side note:
alert(navigator.appName)

when executed in the AOL browser gives "Microsoft Internet Explorer" but it is
far from being the same browser. And goes to show the fallacy of relying on
..appName when trying to determine my browser.
--
Randy




" HikksNotAtHome" <喜************ @ aol.com>在消息中写道

新闻:20 *************************** @ mb-m21.aol.com。 ..

"HikksNotAtHome" <hi************@aol.com> wrote in message
news:20***************************@mb-m21.aol.com...
文章< 3fytb.399968
In article <3fytb.399968


这篇关于浏览器兼容性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆