1.微信个别手机没有声音(手机的安全机制需手动触发)可在分享处加事件
原因: 因为各大浏览器都为了节省流量,做出了优化,在用户没有行为动作时(交互)不予许自动播放;
写法一 <audio src="music/bg.mp3" autoplay loop controls>你的浏览器还不支持哦</audio>
写法二 <audio controls="controls"> <source src="music/bg.ogg" type="audio/ogg"></source> <source src="music/bg.mp3" type="audio/mpeg"></source> 优先播放音乐bg.ogg,不支持在播放bg.mp3 </audio> //JS绑定自动播放(操作window时,播放音乐) $(window).one('touchstart', function(){ music.play(); })
//微信下兼容处理 document.addEventListener("WeixinJSBridgeReady", function () { music.play(); }, false);
//小结 //1.audio元素的autoplay属性在IOS及Android上无法使用,在PC端正常; //2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间; //3.注意不要遗漏微信的兼容处理需要引用微信JS;
2、跨域的几种方式
首先了解下浏览器的同源策略 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
那么怎样解决跨域问题的呢?
1 通过jsonp跨域
1.)原生实现:
<script>
var script = document.createElement('script'); script.type = 'text/javascript'; // 传参并指定回调执行函数为onBack script.src = 'http://www.....:8080/login?user=admin&callback=onBack'; document.head.appendChild(script); // 回调执行函数 function onBack(res) { alert(JSON.stringify(res)); } </script>2、 document.domain + iframe跨域
此方案仅限主域相同,子域不同的跨域应用场景。 1.)父窗口:(http://www.domain.com/a.html)<iframe id="iframe" src="http://child.domain.com/b.html"></iframe>
<script> document.domain = 'domain.com'; var user = 'admin'; </script> 2.)子窗口:(http://child.domain.com/b.html) <script> document.domain = 'domain.com'; // 获取父窗口中变量 alert('get js data from parent ---> ' + window.parent.user); </script>弊端:请看下面渲染加载优化
3、 nginx代理跨域
4、 nodejs中间件代理跨域 5、 后端在头部信息里面设置安全域名3,jq缓存及动态加载js
缓存jQuery.ajaxSetup({cache: true;});动态加载js$.getScript("AD1.js").done(function(){ console.log("ad1")});
4背景图像是否固定
CSS background-attachment 是css软件的一种属性。属性设置背景图像是否固定或者随着页面的其余部分滚动,所有浏览器都支持 。scroll默认值。背景图像会随着页面其余部分的滚动而移动。fixed当页面的其余部分滚动时,背景图像不会移动。inherit规定应该从父元素继承 background-attachment 属性的设置