javascript - document.write() 在一台机器上不起作用,在其他机器上起作用

标签 javascript

我有一位客户使用我们的脚本之一,通过 document.write() 将小程序标签写入网页。该脚本适用于我们所有的开发计算机、所有其他客户计算机以及该客户的家用计算机。但是当在他的工作机器上运行时, document.write() 不会执行。

此外,如果 applet 标记是用 HTML 编写的,则它可以完美地工作。仅当使用 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="applet.config@paths" value="" /><param name="config@files" value="interfaces/cluster.xml,maps/machines.xml,resources/config/looks-jgoodies.xml,license.xml" /><param name="config.schema@files" 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 已成功解析,它也可能根本没有被解析(这与您看到的结果相符)。

我会尝试通过删除语言属性(它是 deprecated )来更改您的脚本标记,而是使用值为 text/javascript 的 type 属性.

<script type="text/javascript">document.write(/* Applet Content */);</script>

关于javascript - document.write() 在一台机器上不起作用,在其他机器上起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17713758/

相关文章:

javascript - 如何取回丑化的js

JavaScript Jquery 作业问题只适用于变量的最佳值

javascript - 在 Angular 服务中使用 Underscore 和 Google map 时出现 JsHint 错误

选择器 session 存储的 Javascript 问题

javascript - 找到某个item的最后一个类,并根据点击的item发布数据

javascript - 多个选择框,但只允许在它们之间进行一个选择

javascript - 如何以reactjs形式绑定(bind)数据

javascript - 是否可以在 Javascript 中进行跨域请求并设置自定义 header ?

javascript - Rails 6 级联选择列表

javascript - 让 JSLint 打破 visual studio 2010 中的构建