重大な問題 - ライブ サイトを展開する前に、すべてのブラウザでテストするのに惨めに失敗しました... ベスト プラクティス - 打ち砕かれました。
その点はさておき、私が働いている会社のために管理しているサイトを実行しているかなりの量の JavaScript があります。私が抱えている問題は、Javascript が IE 以外のすべてで実行されていることです。
すでに言及されている他のいくつかの問題 (主にここ) と比較しましたが、関連するものは見つかりません。誰の助けも素晴らしいでしょう。サイトはhttp://www.agpvideo.comです。
次のコードのどこかに問題があると確信しています...
前もって感謝します。これが私をどこかに連れて行ってくれることを願っています...
function ParseAjax(RootNode)
{
for(var i = 0; i < RootNode.childNodes.length; i++ )
{
var Node = RootNode.childNodes[i];
if( Node.nodeType == 3 || Node.nodeType == 8 )
{
continue;
}
else
{
if( console && console.log )
console.log("Parsing node: " + Node.nodeType + " :: " + Node.nodeName + " :: " + Node.className + " :: " + Node.id);
var Ajax = null;
if(( Ajax = Node.getAttribute("ajax")) == null )
{
if( RootNode.childNodes[i].childNodes != null && RootNode.childNodes[i].childNodes.length > 0 )
{
ParseAjax(RootNode.childNodes[i]);
continue;
}
else
{
continue;
}
}
else
{
if( Node.getAttribute("id") == null )
{
document.writeln("Invalid AJAX callback. Please consult an administrator.");
continue;
}
else
{
var Img = document.createElement("img");
var Src = document.createAttribute("src");
Src.value = "resource/img/std/ajax-loader-0.gif";
Img.setAttribute("src", Src.value);
Node.appendChild(Img);
RequestAjax(Node.getAttribute("id"), Ajax);
continue;
}
}
}
}
}
// JavaScript Document
function RequestAjax(ElementId,AjaxRequest)
{
if( ElementId.length <= 0 )
{
return;
}
else if( AjaxRequest.length <= 0 )
{
return;
}
else
{
if( console && console.log )
console.log("Preparing AJAX request...");
var Request = null;
if( window.XMLHttpRequest )
{
Request = new XMLHttpRequest();
}
else
{
Request = new ActiveXObject("Microsoft.XMLHTTP");
}
Request.ElementId = ElementId;
Request.onreadystatechange=function()
{
if( console && console.log )
{
if( Request.readyState <= 1)
console.log("AJAX state change: " + Request.readyState);
else
console.log("AJAX state change: " + Request.readyState + "/" + Request.status);
}
if( Request.readyState == 4 && Request.status == 200 )
{
var TargetElement = null;
if(( TargetElement = document.getElementById(Request.ElementId)) == null )
{
if( console && console.log )
console.log("AJAX TargetElement is null. Cannot set content for " + Request.ElementId);
}
else
{
TargetElement.innerHTML = Request.responseText;
ParseAjax(TargetElement);
}
}
}
Request.open("GET",AjaxRequest,true);
Request.send();
}
}