APlayer Typecho插件兼容instantclick.js
2023-06-13 09:18:41 时间
超级推荐用这个大佬写的aplayer插件
地址:https://github.com/MoePlayer/APlayer-Typecho 然后在预加载重载函数里写上
loadMeting();
即可
如果遇到切换页面音乐不停止的问题,再重载函数里再补充这条语句
if (typeof aplayers !== 'undefined'){
for (var i = 0; i < aplayers.length; i++) {
try {aplayers[i].destroy()} catch(e){}
}
}
↓以下文章内容已弃用
APlayer Typecho插件
https://github.com/FaithPatrick/APlayer-Typecho-Plugin
instantclick 3.0.1版兼容
方法来自https://muguang.me/php/typecho-theme-apollo.html
将预加载的执行代码
<script data-no-instant>
InstantClick.init();
</script>
改为
<script data-no-instant>
if (!window.audios) {
audios = [];
for (var i = 0; i < APlayers.length; i++) {
audios[i] = APlayers[i].audio;
}
}
InstantClick.on('change', function (isInitialLoad) {
for (var i = 0; i < APlayers.length; i++) {
audios.push(APlayers[i].audio);
}
for(var i = 0; i < audios.length; i++) {if(audios[i]){audios[i].pause()}};
});
InstantClick.init();
</script>
<script>var APlayerOptions = [];</script>//如果无效果尝试删掉这行
instantclick 3.1.0版兼容[不完美]
这个是我参考上边的瞎弄弄出来的,虽然完全看不懂QAQ。。。
打开插件的plugin.php
将里面的
<script>
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
</script>
改为
<script data-no-instant>//就是这里有修改,其他都没动
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
</script>
将预加载的执行代码
<script data-no-instant>
InstantClick.init();
</script>
改为
<script data-no-instant>
if (!window.audios) {
audios = [];
for (var i = 0; i < APlayers.length; i++) {
audios[i] = APlayers[i].audio;
}
}
InstantClick.on('change', function(isInitialLoad) {
if (isInitialLoad === false) {
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
for (var i = 0; i < APlayers.length; i++) {audios.push(APlayers[i].audio);}
for(var i = 0; i < audios.length; i++) {if(audios[i]){audios[i].pause()}};
}
});
InstantClick.init();</script>
相关文章
- js匹配换行符
- js 前进 后退 刷新
- WordPress网站js防扒代码-禁止右键/F12/调试自动关闭窗口
- 《安富莱嵌入式周报》第291期:分分钟设计数字芯片,单片机版JS,神经网络DSP,microPLC,FatFS升级至V0.15,微软Arm64 VS正式版发布
- 【说站】js创建构造函数的注意点
- js中有哪些数据类型_js的五种基本数据类型
- 关于Vue.js的v-for,key的顺序改变,影响过渡动画表现
- JS面试题-js新增基本数据类型BigInt
- js语法(1)_css语法
- js 分页插件_vue分页组件
- 如何使用jscythe并通过Node.js的Inspector机制执行任意JS代码
- CSS 和 JS 合并压缩工具 Minify 及其 WordPress 插件
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- 妙用JS获取Oracle信息的快速方法(js获取Oracle)
- htm调用JS代码
- 用js获取元素属性的代码
- JS函数验证总结(方便js客户端输入验证)
- js与jquery中获取当前鼠标的x、y坐标位置的代码
- jquery.Jwin.js基于jquery的弹出层插件代码
- js实现带搜索功能的下拉框实时搜索实时匹配
- js控制淡入淡出示例代码
- js读写cookie实现一个底部广告浮层效果的两种方法
- JS获取下拉列表所选中的TEXT和Value的实现代码
- JS将所有对象s的属性复制给对象r(原生js+jquery)
- js实现字符串的16进制编码不加密
- js加减乘除丢失精度问题解决方法
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- js中的json对象详细介绍
- jquery.validate.js插件使用经验记录