当前位置: 首页 > 面试题库 >

jQuery .load()调用未在加载的HTML文件中执行JavaScript

钱劲
2023-03-14
问题内容

这似乎只是与Safari有关的问题。我在Mac上尝试过4,在Windows上尝试过3,但仍然没有运气。

我正在尝试加载外部HTML文件,并执行嵌入的JavaScript。

我要使用的代码是这样的:

$("#myBtn").click(function() {
    $("#myDiv").load("trackingCode.html");
});

trackingCode.html 看起来像这样(现在很简单,但是一旦我能正常工作,它将扩展一次):

<html>
<head>
    <title>Tracking HTML File</title>
    <script language="javascript" type="text/javascript">
        alert("outside the jQuery ready");
        $(function() {
            alert("inside the jQuery ready");
        });
    </script>
</head>

<body>
</body>
</html>

我在IE(6&7)和Firefox(2&3)中都看到了警报消息。但是,我无法在Safari中看到消息(我需要关注的最后一个浏览器-项目要求-
请不要大惊小怪)。

关于Safari为什么忽略trackingCode.html文件中的JavaScript的任何想法?

最终,我希望能够将JavaScript对象传递到此trackingCode.html文件以在jQuery
ready调用中使用,但我想确保在所有浏览器中都可以做到这一点。


问题答案:

您正在将整个HTML页面加载到div中,包括html,head和body标签。如果您执行加载并且仅在加载的HTML中包含打开脚本,关闭脚本和JavaScript代码,会发生什么情况?

这是驱动程序页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>jQuery Load of Script</title>
        <script type="text/javascript" src="http://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load("jquery", "1.3.2");
        </script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#myButton").click(function() {
                    $("#myDiv").load("trackingCode.html");
                });
             });
         </script>
    </head>
    <body>
        <button id="myButton">Click Me</button>
        <div id="myDiv"></div>
    </body>
</html>

以下是trackingCode.html的内容:

<script type="text/javascript">
    alert("Outside the jQuery ready");
    $(function() {
        alert("Inside the jQuery ready");
    });
 </script>

这对我在Safari 4中有效。

更新:添加了DOCTYPE和html名称空间以匹配我的测试环境中的代码。经过Firefox 3.6.13的测试,示例代码可以正常工作。



 类似资料:
  • 本文向大家介绍怎样在NodeJs中加载HTML文件?相关面试题,主要包含被问及怎样在NodeJs中加载HTML文件?时的应答技巧和注意事项,需要的朋友参考一下 开启http服务器 使用fs读取对应目录的文件 设置请求头 res.setHeader("Content-Type","text/html;charset=utf-8"); res.write(html字符串),调用res.end();获采

  • 问题内容: 问题说明了一切。 在我的情况下,特殊之处在于当前工作目录不是jar文件的位置,而是(我的jar文件由Windows使用右键菜单启动,我想将文件夹的路径作为参数传递给jar) 。 现在,我想加载一个与jar相同的文件夹中的配置文件。该文件的目的当然是为jar提供设置。对我来说重要的是,xml文件 位于 jar文件 之外 ,以便于编辑。 我很难加载该文件。Windows执行该行 调用整个过

  • 我有一个项目,其中包含页面文件夹中的单个页面以及一些javascript库和代码。我将它们捆绑到WAR中并将其部署在CentOS系统中。但是当我尝试访问它时,我得到了错误。错误交替出现在 和 我在本地机器中部署它没有问题。 编辑:配置 这是CentOS中tomcat的配置,我的本地机配置相同,除了

  • 背景:我创建了一个JavaFX应用程序,使用JFXPanel嵌入到Swing框架中。我一直在使用Eclipse作为IDE。“主应用程序”是另一个类,它仅用于创建一个类的实例,该类扩展 以在实例化时加载我的 .fxml 文件。从 Eclipse 执行主类时,一切都很好,我的 .fxml 文件中指定的 fx:controller 有它的 方法调用(我可以从它在加载时对 UI 所做的更改中看出),并且没

  • 我在netbeans中编写了一些利用swing的GUI程序,它工作得很好。我通过右键单击project>Clean and build创建了jar文件,所有的资源都来自项目属性。dist文件夹中的jar文件通过命令行执行,使用 但是每当我双击jar文件时,它就会显示“找不到主类。程序将退出”。我参考了这些链接,但没有结果:在netbeans中生成可执行jar

  • 我正在https://www.tutorialspoint.com/cucumber/cucumber_annotations.htm上做这个cucumber教程 他们告诉我在pom文件中添加一些依赖项:selenium-java、cucumber-java、cucumber-junit和jUnit。这是我的pom: 然后他们让我创建一个特性文件:annotation.feature和一个步骤定义