在HTML中包含JavaScript

在HTML中包含JavaScript,javascript,jquery,audio,Javascript,Jquery,Audio,我在网上找到了一个jQuery声音插件(无flash),它是script.aculo.us'sound.js()的一部分,基于Jules Gravinese()的代码 不起作用: <script type="text/javascript" src="/data/js/sound.js"></script> 作品: <? include($_SERVER['DOCUMENT_ROOT']."/data/js/sound.js");?> 为了让我

我在网上找到了一个jQuery声音插件(无flash),它是script.aculo.us'sound.js()的一部分,基于Jules Gravinese()的代码

不起作用:

 <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;">

sound.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>

(函数($){
$.sound={
曲目:{},
启用:对,
模板:函数(src){
返回“”;
},
播放:功能(url、选项){
如果(!this.enabled)
返回;
变量设置=$.extend({
url:url,
超时:2000
},选项);
if(settings.track){
if(this.tracks[settings.track]){
var current=this.tracks[settings.track];
//TODO检查Stop何时可用,当然不是在jQuery对象上
current.Stop&¤t.Stop();
current.remove();
}
}
var元素=$.browser.msie
?$('').attr({
src:settings.url,
循环:1,
自动启动:正确
})
:$(this.template(settings.url));
元素。附于(“主体”);
if(settings.track){
this.tracks[settings.track]=元素;
}
如果(选项){
setTimeout(函数(){
元素。移除();
},选项。超时)
}
返回元素;
}
};
})(jQuery);

要使第一个示例起作用,请执行以下操作:

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


从.JS文件中删除标记

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

起初

最后

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

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

使用jQuery的脚本作者负责指定与之兼容的jQuery版本。使用脚本的人有责任知道并理解需要什么版本的jQuery,并为脚本的正常工作创建适当的环境(提供正确版本的jQuery)

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

以这个为例:

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


请点击你的演示链接?谢谢你的链接,但是当我删除脚本标签时,它会显示整个js代码(还有Luke的编辑)“谢谢你的编辑。现在它工作得很好。-Grischa”那是怎么回事?我说了同样的话。。。由于该文件已经在一个.js文件中,您不需要:对不起,只在我的test.php上,它显示了sound.phpUse中的整个js代码在html页面中使用脚本标记。。。不要在.js文件中使用它