Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这段代码在单独的文件上工作,而不是内联的_Javascript_Jquery_Audio_Epub3 - Fatal编程技术网

Javascript 为什么这段代码在单独的文件上工作,而不是内联的

Javascript 为什么这段代码在单独的文件上工作,而不是内联的,javascript,jquery,audio,epub3,Javascript,Jquery,Audio,Epub3,这个问题可能看起来很傻,但我真的不知道问题出在哪里。最初,我只有一个.js文件,该文件具有向页面添加音频的功能: 函数addAudio(id\u name,audio\u filepath){ var audio=$('),就像我说的,如果函数在一个单独的文件中,它就可以工作。那么为什么内联不能呢?我认为问题在于你的文件引用。当我把你的代码放到JSFIDLE中时,它似乎可以引用互联网上的wav文件 函数addAudio(id\u name,audio\u filepath){ var audi

这个问题可能看起来很傻,但我真的不知道问题出在哪里。最初,我只有一个.js文件,该文件具有向页面添加音频的功能:

函数addAudio(id\u name,audio\u filepath){

var audio=$('),就像我说的,如果函数在一个单独的文件中,它就可以工作。那么为什么内联不能呢?

我认为问题在于你的文件引用。当我把你的代码放到JSFIDLE中时,它似乎可以引用互联网上的wav文件

函数addAudio(id\u name,audio\u filepath){
var audio=$('')
.prop('id','audio'+id\u name)
.prop('src',音频文件路径)
.text(“您的阅读器不支持音频。”);
$('body')。追加(音频);
$('#'+id_名称)。单击(函数(){
audio.get(0.play();
});
}
$().ready(函数()){
addAudio('测试','http://download.wavetlan.com/SVV/Media/HTTP/WAV/Media-Convert/Media-Convert_test1_Alaw_Mono_VBR_8SS_16000Hz.wav');
});
}

我认为问题在于您的文件引用。当我将您的代码放入JSFIDLE时,它似乎可以引用internet上的wav文件

函数addAudio(id\u name,audio\u filepath){
var audio=$('')
.prop('id','audio'+id\u name)
.prop('src',音频文件路径)
.text(“您的阅读器不支持音频。”);
$('body')。追加(音频);
$('#'+id_名称)。单击(函数(){
audio.get(0.play();
});
}
$().ready(函数()){
addAudio('测试','http://download.wavetlan.com/SVV/Media/HTTP/WAV/Media-Convert/Media-Convert_test1_Alaw_Mono_VBR_8SS_16000Hz.wav');
});
}

各位,我找到了答案。谢谢大家的关注和帮助,给您带来的不便深表歉意。我想删除这个问题,但我将回答它,以帮助那些可能经历同样事情的人

根据Mozilla基金会,在XHTML中使用内联JavaScript是麻烦的:()

JavaScript通常包含不能存在于CDATA节之外的XHTML中的字符


因此,我解决了将
$('')行更改为
$('&t;audio/gt;')

的问题,各位,我找到了答案。谢谢大家的关注和帮助,给您带来的不便深表歉意。我想删除这个问题,但我将回答它,以帮助那些可能经历同样事情的人

根据Mozilla基金会,在XHTML中使用内联JavaScript是麻烦的:()

JavaScript通常包含不能存在于CDATA节之外的XHTML中的字符


因此,我解决了将行
$('')更改为
$('&t;audio/gt;')

在浏览器控制台中显示什么?当代码位于单独的文件中时,音频将正常播放。当代码内联时,控制台显示
uncaughttypeerror:无法读取未定义的属性“play”
第二个属性中有on
play
…好的,只是猜测一下,但我认为,当您从内联脚本调用音频时,可能需要修改音频的url,因为您的外部脚本位于另一个文件夹中,并且与html文件的级别不同。@imthenanchoman我解决了这个问题。谢谢。您的浏览器控制台中显示了什么?当代码位于单独的文件中时,音频将正常播放。当代码内联时,控制台显示
uncaughttypeerror:无法读取未定义的属性“play”
第二个属性中有on
play
…好的,只是猜测一下,但我认为,当您从内联脚本调用音频时,可能需要修改音频的url,因为您的外部脚本位于另一个文件夹中,并且与html文件的级别不同。@imthenanchoman我解决了这个问题。谢谢。我已尝试将url更改为您提供的url,但仍然没有成功。我已尝试将url更改为您提供的url,但仍然没有成功。
    function addAudio(id_name, audio_filepath) {
      var audio = $('<audio />')
                    .prop('id', 'audio' + id_name)
                    .prop('src', audio_filepath)
                    .text("Your reader doesn't support audio.");

      $('body').append(audio);

      $('#' + id_name).click(function () {
        audio.get(0).play();
      });
    }

    $().ready(function() {
      addAudio('test', 'http://download.wavetlan.com/SVV/Media/HTTP/WAV/Media-Convert/Media-Convert_test1_Alaw_Mono_VBR_8SS_16000Hz.wav');
    });
}