在 HTML 中包含 JavaScript

Posted

技术标签:

【中文标题】在 HTML 中包含 JavaScript【英文标题】:Including JavaScript in HTML 【发布时间】:2014-06-21 21:47:31 【问题描述】:

我在网上找到了一个 jQuery 声音插件(没有 flash),它是 script.aculo.us 的 sound.js (http://script.aculo.us) 的一部分,基于 Jules Gravinese (http://www.webveteran.com/) 的代码。

不起作用:

 <script type="text/javascript" src="/data/js/sound.js"></script>

作品:

<? include($_SERVER['DOCUMENT_ROOT']."/data/js/sound.js");?> 

应该改变什么,所以我的 test.php 可以使用正常的 include 方法? 为什么此脚本仅适用于 query/1.4.2/jquery.min.js 而不适用于 jquery/1.11.1/ 或我的 jquery-2.1.0.min.js

test.php

<img src="/bilder/flaggen/englisch.png" onclick="$.sound.play('http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=Test')" style="cursor:hand;cursor:pointer;">

声音.js

   <script type="text/javascript"> 
   (function($) 

    $.sound =  
    tracks: ,
    enabled: true,
    template: function(src) 
    return '<embed style="height:0" loop="false" src="' + src + '" autostart="true"    hidden="true"/>';
,
play: function(url, options)
    if (!this.enabled)
        return;
    var settings = $.extend(
        url: url,
        timeout: 2000
    , options);

    if (settings.track) 
        if (this.tracks[settings.track]) 
            var current = this.tracks[settings.track];
            // TODO check when Stop is avaiable, certainly not on a jQuery object
            current.Stop && current.Stop();
            current.remove();  
        
    

    var element = $.browser.msie
        ? $('<bgsound/>').attr(
            src: settings.url,
            loop: 1,
            autostart: true
          )
        : $(this.template(settings.url));

    element.appendTo("body");

    if (settings.track) 
        this.tracks[settings.track] = element;
    

    if(options)
        setTimeout(function() 
            element.remove();
        , options.timeout)
    

    return element;

;

)(jQuery);
</script>

【问题讨论】:

请问你的演示链接? lern-online.net/test.php 【参考方案1】:

由于该文件已经在 .js 文件中,因此您不需要:

&lt;script type="text/javascript"&gt;

开头

&lt;/script&gt;

最后

此外,由于最新版本中的更新,它不适用于最新版本的 JQuery。旧版本中的许多功能在新版本中已被删除或重命名。

每个使用 jQuery 的脚本都是针对特定版本的 jQuery 编写和测试的。有时,它适用于多个版本的 jQuery,有时它只适用于一个特定版本的 jQuery。

使用 jQuery 的脚本的作者有责任指定它与哪些版本的 jQuery 兼容。使用脚本的人有责任了解和理解所需的 jQuery 版本,并为脚本正常工作创建适当的环境(存在正确版本的 jQuery)。

特定版本的 jQueryUI 仅与特定版本的核心 jQuery 兼容。同样,jQueryUI 插件仅与 jQueryUI 和 jQuery 的某些版本兼容。您自己必须混合和匹配所有这些的兼容版本。

看看这个例子:

http://jquery.com/upgrade-guide/1.9/

这里还概述了较新的 JQuery 1.11 和 2.1.0

http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/

【讨论】:

感谢您的链接,但是当我删除脚本标签时,它会显示整个 js 代码(还包含 Luke 的编辑) “感谢您的编辑。现在它可以完美运行了。-Grischa”那是什么意思? 我说了同样的话...由于文件已经在 .js 文件中,您不需要: 我很抱歉只在我的 test.php 上显示了 sound.php 中的整个 js 代码 html页面中使用script标签...不要在.js文件上使用【参考方案2】:

使您的第一个示例工作:

<script type="text/javascript" src="/data/js/sound.js"></script>

从您的 .JS 文件中删除标签。

【讨论】:

以上是关于在 HTML 中包含 JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

在 HTML 中包含 JavaScript

如何在 HTML 中包含 SCSS 文件 [关闭]

在 HTML 文件中包含另一个 HTML 文件 单页应用程序

如何在 Cordova / Phonegap 的远程 html 文件中包含本地脚本?

如何在 html 文档中包含 html 代码? [关闭]

在 Jekyll 标签中包含 HTML