需要一段JS代码判断浏览器是否支持显示webp,如果支持就加载外部1.js否则加载2.js
热议
推荐楼 Salta
把console.log("支持");或console.log("不支持"); 改成输出你的JS就行了
3楼 蒂姆·库克 昨天17:35
https://blog.csdn.net/weixin_33695450/article/details/89626831
然后自个改改代码就行
4楼 572149705 昨天17:35
var isSupportWebp = function () {
try {
return document.createElement('canvas').toDataURL('image/webp', 0.5).indexOf('data:image/webp') === 0;
} catch(err) {
return false;
}
}
isSupportWebp()
function check_webp_feature(feature, callback) {
var kTestImages = {
lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
};
var img = new Image();
img.onload = function () {
var result = (img.width > 0) && (img.height > 0);
callback(feature, result);
};
img.onerror = function () {
callback(feature, false);
};
img.src = "data:image/webp;base64," + kTestImages[feature];
}
const supportsWebp = ({ createImageBitmap, Image }) => {
if (!createImageBitmap || !Image) return Promise.resolve(false);
return new Promise(resolve => {
const image = new Image();
image.onload = () => {
createImageBitmap(image)
.then(() => {
resolve(true);
})
.catch(() => {
resolve(false);
});
};
image.onerror = () => {
resolve(false);
};
image.src = 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=';
});
};
const webpIsSupported = () => {
let memo = null;
return () => {
if (!memo) {
memo = supportsWebp(window);
}
return memo;
};
};
webpIsSupported()().then(res => {
console.log("是否支持 webp", res)
}).catch(err => {
console.log(err)
})
5楼 everdale 昨天17:36
一搜一堆,5毛钱流量就够
6楼 白龙君 昨天17:36
把console.log("支持");或console.log("不支持"); 改成输出你的JS就行了
妈的我眼瞎了,谢谢老哥我试试,可以了我私你。
7楼 572149705 昨天17:37
var isSupportWebp = function () {
try {
return document.createElement('canvas').toDataURL('ima ...
改改这种还要花钱吗百度阿铁铁
8楼 xuhao0080 昨天17:37
https://cl1p.net/jsin
很简单的解决方法
stackoverflow找的
9楼 白龙君 昨天17:51
把console.log("支持");或console.log("不支持"); 改成输出你的JS就行了
直接填js地址不行啊
10楼 Salta 昨天17:54
直接填js地址不行啊
https://zhidao.baidu.com/question/718506054538000445.html
12楼 白龙君 昨天18:05
https://zhidao.baidu.com/question/718506054538000445.html
是1替换外部地址吗?
13楼 Salta 昨天18:17
是1替换外部地址吗?
https://cl1p.net/opr上面那部分不变 试试这个!
14楼 hostloccom 昨天18:20
还需要吗?正好做过
15楼 白龙君 昨天18:23
https://cl1p.net/opr上面那部分不变 试试这个!
报错了
"); }else{ document.write(" "); } });
试试这段引用代码js/ok.js 依旧改成你的链接
17楼 白龙君 昨天18:42
试试这段引用代码js/ok.js 依旧改成你的链接
WebpIsSupported(function(isSupported){
if(isSupported){
var script = document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','ok.js');
document.getElementsByTagName('head')[0].appendChild(script);
}else{
var script = document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','ok2.js');
document.getElementsByTagName('head')[0].appendChild(script);
}
});
这样吗?还是不生效
18楼 Salta 昨天18:44
这样吗?还是不生效
改成你的链接了吗?
19楼 白龙君 昨天18:50
改成你的链接了吗?
。。肯定改了啊
20楼 Salta 昨天18:53
。。肯定改了啊
那我没办法了,你如果是php程序的话去php那边判断吧, JS我这边判断没问题,你那边不知道咋回事,你外部链接不行的话你把它下载到本地,本地引入试试,我这边本地引入都没问题的
22楼 Salta 昨天18:58
我看网络请求加载了JS地址,但是没有被执行。
直接引用没问题。
嗯,可能是跨域问题...
23楼 wise指南 昨天19:00
var isSupportWebp = function () {
try {
return document.createElement('canvas').toDataURL('image/webp', 0.5).indexOf('data:image/webp') === 0;
} catch(err) {
return false;
}
}
isSupportWebp()
老哥这样写可以调用JS并执行,但是为啥页面被清空了。
25楼 华为任正非 昨天21:57
现在不都支持webp了吗……
试试
或者看看控制台有没有报错 F12
参考:https://www.w3school.com.cn/jquery/ajax_getscript.asp
27楼 白龙君 昨天23:26
可以直接执行试试
或者看看控制台有没有报错 F12
不行,搞不定了。
28楼 wxrpass 26分钟前
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
谷姐靓号网




评论前必须登录!
立即登录 注册