我有一位客戶使用我們的腳本之一使用document.write()將小應用程序標記寫入網頁。該腳本適用於所有開發機器,所有其他客戶機器以及該客戶的家用機器上。但是當在他的工作機器上運行時,document.write()不會執行。document.write()不在一臺機器上工作,在其他機器上工作
此外,如果使用HTML編寫applet標籤,它的工作效果會很好。它只有在使用document.write寫入時纔會失敗。爲了測試,我們使用了一個包含準系統HTML的工作文件,將applet標記放在一行中,並將其包含在document.write()中。 Java插件沒有初始化,這似乎表明document.write正在被阻止或失敗,與applet標記無關。
我應該調查什麼原因或缺少什麼?
該機器是在虛擬機中運行Ubuntu的Mac機。包含該腳本的網頁由在Ubuntu上運行的Tomcat 7提供服務。我們測試了Ubutu虛擬機上的Firefox和Chrome以及Mac主機上的Firefox和Safari上的頁面。這些都沒有使用document.write()運行文件。
我知道document.write在XHTML中是禁用的,但我沒有看到如何將頁面解析爲XHTML。該文件不包含文檔類型聲明,因此應該將其解析爲標準HTML。我還問過MIME類型是否已被修改(如果.htm擴展名映射到XHTML MIME類型),但他們沒有。
我沒有獲得他的測試文件,但它本質上等價於:
<html>
<head>
<title>Heat Map Explorer 2012</title>
</head>
<body style="margin: 0">
<script language="JavaScript">
document.write('<applet code="com.labescape.explorer.applet.HeatMapExplorerApplet.class" name="com.labescape.explorer.applet.HeatMapExplorerApplet" archive="resources/lib/explorer-applet-2012.2100.jar" height="100%" width="100%" border="0" mayscript="true"><param name="[email protected]" value="" /><param name="[email protected]" value="interfaces/cluster.xml,maps/machines.xml,resources/config/looks-jgoodies.xml,license.xml" /><param name="[email protected]" value="resources/schemas/schema-swing.xml,resources/schemas/schema-hme.xml,resources/schemas/schema-looks.xml" /><param name="profiling" value="false" /><param name="java_arguments" value=" -Xmx256m" /><param name="separate_jvm" value="false" /></applet>');
</script>
</body>
</html>
此外,我們檢查了控制檯,沒有語法錯誤,所以JavaScript正在被正確解析。問題似乎在於執行該方法。 –