在JavaScript中进行循环调试
JavaScript中的for循环可用于遍历数组或对象属性中的所有项。这使得循环遍历任何对象或数组非常容易。如以下示例所示,打印出数组中的所有项目。
var count = ''; var numbers = new Array(3); numbers[0] = 42; numbers[1] = 13; numbers[2] = 73; for(i in numbers){ count += numbers[i]+' '; } alert(count);
使用JavaScript的三个主要对象是导航器,窗口和文档。尽管窗口是导航器的一部分,而文档是窗口的一部分。因此,要打印出所有与浏览器有关的信息,您可以执行以下操作。请注意,窗口和文档中的某些项目可能会导致JavaScript在某些浏览器中崩溃,因此此处包含一些错误检测。
var html = '
Navigator Properties | Value |
---|---|
" + i + " | " + navigator[i] + " |
Window Properties | Value |
" + i + " | " + window[i] + " |
Document Properties | Value |
" + i + " | " + document[i] + " |
这产生输出。
注意:为简便起见,桌子已被切断。
InternetExplorer将使用该属性的值或“对象”来标记所有内容,而与对象类型无关。Firefox,Safari和Opera将通过许多不同的对象类型提供更有意义的输出。需要注意的几种对象类型如下:
[本机代码]:这是本机JavaScript代码。例如,在文档对象中,您将看到一个名为write的属性,其值为函数write(){[nativecode]}。这是document.write可用于将输出写入浏览器的功能。
[objectHTMLCollection]:这是HTML对象的集合(或数组)。例如,文档主体中的每个链接都保留在links属性中。
[对象窗口]:对于frames属性,此对象是窗口数组,每帧一个对象。该对象类型在Opera中称为[objectWindowCollection]。
[objectPluginArray]:这是一个数组,其中包含有关浏览器中可用插件的信息,而这些信息在InternetExplorer中不可用。要找到InternetExploer的插件,您将需要使用VBScript。Firefox具有附加的直到属性和功能。如果您想知道用户是否安装了Flash,则可以使用此阵列查找ShockwaveFlash插件。每个插件对象都有一个名称属性,您可以使用它来查看插件是什么。
要查找任何内部对象的值,可以在与以前相同的数组中使用点表示法。例如,要查看所有可用于浏览器的插件,请使用以下代码(不适用于IE)。由于每个插件都有一个name属性,因此已包含该属性以详细说明每个插件的名称。
html += ""; for(i in navigator.plugins){ html += " Plugins Value \n"; } " + i + " " + navigator.plugins[i] + " " + navigator.plugins[i].name + "
要查找页面上的所有可用链接,可以使用document.links数组。由于每个链接都应具有标题标签,因此可以使用每个链接的title属性进行引用。
html += ""; for(i in document.links){ html += " Plugins Value \n"; } " + i + " " + document.links[i] + " " + document.links[i].title + "