Вот написал небольшой код (http://kuzya.inattack.ru/test.php) но он отказывается работать под мозиллой. Везде написано как и что нужно для мозилы реализовывать, но ни один пример в ней не работает =((((. Если кто разбирается - посмотрите код плиз, помогите.
P.S. В IE всё робит нормально.
1. kuzya - 28 Марта, 2007 - 20:11:13 - перейти к сообщению
2. kamikadze - 28 Марта, 2007 - 20:13:41 - перейти к сообщению
+ под оперой не пашет =))
3. Viper - 29 Марта, 2007 - 11:39:29 - перейти к сообщению
у тебя в коде обработка XMLHTTPRequest задана для ActiveX который поддерживается только IE. для Других браузеров нужно писать обработку преобразования XSLT.
Т.е. для IE будет нечто вида:
var outDoc = new ActiveXObject(getActiveXImpl(ACTIVEX_DOMS));
а этот же код для Mozilla будет выглядеть так:
var outDoc = xsltProcessor.transformToDocument(xmlDoc);
соответственно имена переменных для функций и имена самих функций буду разные.
значение для ACTIVEX_DOMS будет вида var ACTIVEX_DOMS = ["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"];
а для Mozilla указывать не нужно.
ЗЫ! Вообще-то неплохо писать на каком "движке" пишеш.
Т.е. для IE будет нечто вида:
var outDoc = new ActiveXObject(getActiveXImpl(ACTIVEX_DOMS));
а этот же код для Mozilla будет выглядеть так:
var outDoc = xsltProcessor.transformToDocument(xmlDoc);
соответственно имена переменных для функций и имена самих функций буду разные.
значение для ACTIVEX_DOMS будет вида var ACTIVEX_DOMS = ["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"];
а для Mozilla указывать не нужно.
ЗЫ! Вообще-то неплохо писать на каком "движке" пишеш.
4. kuzya - 30 Марта, 2007 - 19:08:52 - перейти к сообщению
Вот код из большинства ресурсов:
function initXMLHTTPRequest(){
var xRequest=null;
if (window.XMLHTTPRequest){
xRequest=new XMLHttpRequest();
} else if(window.ActiveXObject){
xRequest=new ActiveXObject("Microsoft.XMLHTTP")
}
return xRequest;
}
Как понять "на каком движке пишеш"?
function initXMLHTTPRequest(){
var xRequest=null;
if (window.XMLHTTPRequest){
xRequest=new XMLHttpRequest();
} else if(window.ActiveXObject){
xRequest=new ActiveXObject("Microsoft.XMLHTTP")
}
return xRequest;
}
Как понять "на каком движке пишеш"?
5. Viper - 02 Апреля, 2007 - 11:58:31 - перейти к сообщению
kuzya пишет:
Вот код из большинства ресурсов: ...
что-то я сильно сомневаюсь чтобы ActiveX работал под движком браузера не поддерживающим его.
kuzya пишет:
Как понять "на каком движке пишеш"?
имеется ввиду prototype или dojo или ... "движков" много.
ЗЫ! Рекомендую http://ru[dot]wikipedia[dot]org/wiki/Ajax
6. kuzya - 02 Апреля, 2007 - 12:58:00 - перейти к сообщению
Неет, Вы о5 не так поняли. Вышепривидённая функция возвращает компонент ActiveX если ActiveX включен(то есть если IE) в обратном же случае - возвращается window.XMLHttpRequest.
7. kuzya - 02 Апреля, 2007 - 20:03:37 - перейти к сообщению
всё, разобрался. Ошибка была до ужаса банальной =) 3 буквы пропустил =)
8. kamikadze - 02 Апреля, 2007 - 21:09:37 - перейти к сообщению
Скажи хоть де запорол код, пусть остальные посмотрят!
9. Viper - 03 Апреля, 2007 - 08:22:43 - перейти к сообщению
1. Сказал как сам сделал.
2. Подробнее пожалуйста что исправил
2. Подробнее пожалуйста что исправил
10. kuzya - 03 Апреля, 2007 - 12:23:20 - перейти к сообщению
Не пропустил а дописал =)
Короче не знаю почему так призошло но когда написал
xRequest=new XMLHttpRequest;
за место
xRequest=new XMLHttpRequest();
то всё заработало. Грубо говоря вообще случайно получилось правильно написать =)
Хотя в книжке написано со скобками...полтергей какойто =)
Короче не знаю почему так призошло но когда написал
xRequest=new XMLHttpRequest;
за место
xRequest=new XMLHttpRequest();
то всё заработало. Грубо говоря вообще случайно получилось правильно написать =)
Хотя в книжке написано со скобками...полтергей какойто =)
11. UserID - 04 Апреля, 2007 - 16:44:06 - перейти к сообщению
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- function ajax()
- {
- // Connection handler
- var req = null;
- // Browser platform
- var browser = null;
- // Handler of copy ajax method
- var xmlHttpRequest;
- this.ajax = function()
- {
- this.req = (false || true);
- this.browser = (false || true);
- this.getBrowser();
- this.aVersion = [
- "Microsoft.XMLHTTP",
- "MSXML2.XMLHttp",
- "MSXML2.XMLHttp.3.0",
- "MSXML2.XMLHttp.4.0",
- "MSXML2.XMLHttp.5.0"];
- if(this.browser == true)
- {
- for(var i = 0; i < this.aVersion.length; i++)
- {
- this.xmlHttpRequest = new ActiveXObject(this.aVersion[i]);
- if(this.xmlHttpRequest == true) {
- break;
- }
- }
- }
- else {
- this.xmlHttpRequest = new XMLHttpRequest();
- }
- return this.xmlHttpRequest;
- }
- this.getBrowser = function()
- {
- var browser_name = navigator.appName.toLowerCase();
- var browser_check = "microsoft internet explorer";
- if(browser_name == browser_check)
- this.browser = true;
- else
- this.browser = false;
- return this.browser;
- }
- //-------------------------------------------
- //-------------------------------------------
- }
Это кусок из "псевдокласса" на js. У меня работал и на Мозилле, и на Осле, и в Опере. Извиняйте, писал сходу. Так что ошибки не исключены, но это уже мелочи..