我正在尝试显示c客户端浏览器中未安装但需要的插件列表。 以下代码首先将txt文件(包含所需的插件)作为输入。之后,它与浏览器上安装的插件列表进行比较。我得到的只是在div标签中写的内容而不是浏览器上没有安装的插件名称。 test.txt文件的内容是 - Flash Java的 请帮忙!
function LoadFile(e) {
//Reading and displaying the Plugins Required
var div = document.getElementById('txt');
var oFrame = document.getElementById("frmFile");
var strRawContents = oFrame.contentWindow.document.body.childNodes[0].innerHTML;
while (strRawContents.indexOf("\r") >= 0)
strRawContents = strRawContents.replace("\r", "");
var arrLines = strRawContents.split("\n");
document.writeln("File " + oFrame.src + " has " + arrLines.length + " line(s)<br/>");
e.preventDefault();
for (var i = 0; i < arrLines.length; i++) {
var temp = false;
var curLine = arrLines[i];
document.write("<br/>Line #" + (i + 1) + " is: '" + curLine + "'<br/>");
for (var j = 0; j < navigator.plugins.length; j++) {
var plugin = navigator.plugins[j];
var plugin_name = plugin.name;
var n = plugin_name.search(curLine);
if (n != -1) {
document.write("Plugin Present<br/>");
temp = true;
break;
}
}
if (temp == false) {
document.write("Plugin is not present<br/>");
div.innerHTML = plugin_name;
}
}
}
&#13;
<!doctype html>
<html>
<iframe id="frmFile" src="test.txt" onload="LoadFile();" style="display: none;"></iframe>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src ="test.js" type="text/javascript"></script>
<div id="txt"> This is where it should input</div>
</head>
<body>
<table id="info" cellpadding="0px" cellspacing="0px" border="1px" style="empty-cells:show;">
<colgroup>
<col style="background-color: #e0a0b0;" />
<col />
</colgroup>
<tbody>
</tbody>
</table>
</body>
</html>
&#13;
答案 0 :(得分:2)
你犯了一些错误。
<body>
标记中。<div id="txt">
也应位于<body>
标记内。window.frames[0].document.body.innerHTML;
。document.write()
被禁用。同样,未定义的e
被禁用。此外,jsFiddle不允许跨站点iframe,因此使用来自其自己站点的虚拟页面。更正了工作示例:Fiddle
答案 1 :(得分:-1)
要改变html标签的值(假设允许它),在你的情况下是
<div id="txt"> This is where it should input</div>
在Javascript中会是这样的:
document.getElementById("txt").innerHTML=yourValue;