Tag: safari

使用HTML5音频更改适用于Chrome但不适用于Safari

我正在尝试制作可在每个主要浏览器中使用的HTML5音频播放列表:Chrome,Safari,Firefox,IE9 +。 但是,我无法弄清楚如何以跨浏览器兼容的方式更改源。 更新例如,更改标签的src可在Chrome中使用,但不适用于Safari。 虽然@ eivers88的解决方案使用canPlayType工作,但我更容易改变标签的src 。 任何人都可以向我解释为什么我的代码直接在Chrome下工作,但不适用于Safari? JS: var audioPlayer=document.getElementById(‘audioPlayer’); var mp4Source=$(‘source#mp4’); var oggSource=$(‘source#ogg’); $(‘button’).click(function(){ audioPlayer.pause(); mp4Source.attr(‘src’, ‘newFile.mp4’); oggSource.attr(‘src’, ‘newFile.ogg’); audioPlayer.load(); audioPlayer.play(); }); HTML: Next song 点击按钮后检查HTML, 确实在Safari中发生变化,只是没有发出HTTP请求,所以文件没有得到load() ed和play() ed。 有没有人对此有任何想法?

Safari上的pageshow活动

我有以下简单的JavaScript,我需要在页面重新加载时重新初始化一些变量,特别是当页面从Safari BFCache提供时: jQuery(window).bind(‘pageshow’, function(event) { // I could inspect event.originalEvent.persisted here to check for BFCache hits, // but it isn’t required in this instance. // Do some initialisation here }); 假设用户遵循以下路径,导航到页面B和C,在每个页面之后浏览(即使用后退按钮)到页面A: A – > B – > A – > C – > A. pageshow处理程序仅在第一次和第二次访问A时触发,即初始页面加载和第一次BFCache加载。 所以从本质上讲,似乎只有一次从BFCache fire pageshow页面。 这是Safari上的预期行为,有没有办法绕过它?

Safari不像其他浏览器那样对对象数组进行排序

var myArray = [{date:”2013.03.01″},{date:”2013.03.08″},{date:”2013.03.19″}]; 我试过了: function(a,b){ return b.date > a.date; } 和 function(a,b){ return b.date – a.date; } Chrome和Firefox中的console.log为我提供了所需的输出: “2013.03.19”, “2013.03.08”, “2013.03.01” 但Safari提供原始排序: “2013.03.01”, “2013.03.08”, “2013.03.19” 为什么?

Safari和Chrome中的跨域AJAX调用

Firefox和Internet Explorer都具有用户可以启用禁止的跨域调用的设置。 Safari和/或Chrome中是否有类似的设置或选项?

iphone的safari touchmove活动无法正常工作

我正在使用jquery和touchmove事件,但代码没有在#info中显示任何内容 $(‘#movieShow’).bind(‘touchmove’,function(e){ e.preventDefault(); $(‘#info’).text(e.touches[0].pageX); });

jquery .width()chrome和safari问题

我已经在css中将图像的高度设置为某个值,并且宽度会自动修改以保持纵横比。 我正在使用.width()jquery函数在css调整图像大小后获取图像的宽度。 在Firefox和Internet Explorer中,这非常有用,但在chrome和safari中,每个图像返回的宽度始终为0。 我正在使用的代码如下: var total=0; var widthdiv=0; $(function(){ $(‘.thumb’).each(function(){ widthdiv=$(this).width(); total+=widthdiv; alert(widthdiv); //added so i can see what value is returned. }); }); 和图像的CSS: #poze img{ height:80px; width:auto; border:0px; padding-right:4px; }

Safari Ajax cors请求不遵循重定向

基本上,我有一个登录表单,一旦通过身份validation,就会启动Oauth2进程。 哪个工作完美无缺,直到它必须进行最终重定向才能获得访问权限。 登录流程如下POST到/user/login重定向到/user/oauth/auth然后重定向到Oauth redirect_uri /user/oauth/redirect 。 redirect_uri永远不会发生,请求永远不会到达服务器。 如果我使用Ajax请求点击该重定向,那么cors工作正常,我得到预期的响应,如果我重定向两次似乎只会发生。 服务器显示这些响应 [I 130226 10:16:38 web:1462] 302 POST /user/login (192.168.1.5) 156.01ms (Session cookies set fine) [I 130226 10:16:38 web:1462] 200 OPTIONS /user/oauth/auth?scope=&client_id=DemoApp&response_type=code&redirect_uri=http://192.168.1.5:8443/user/oauth/redirect/code (192.168.1.5) 1.86ms 302 GET /user/oauth/auth?scope=&client_id=DemoApp&response_type=code&redirect_uri=http://192.168.1.5:8443/user/oauth/redirect/code (192.168.1.5) 8.58ms 最后一个URL永远不会受到影响。 在Chrome,IE,FF中,除了服务器看到请求之外,流程是相同的 [I 130226 10:16:38 web:1462] 302 POST /user/login (192.168.1.5) 156.01ms [I 130226 10:16:38 web:1462] 200 OPTIONS /user/oauth/auth?scope=&client_id=DemoApp&response_type=code&redirect_uri=http://192.168.1.5:8443/user/oauth/redirect/code (192.168.1.5) […]

JQuery Ajax调用通常不适用于Safari 6

我的Ajax调用非常简单,如下所示: function ajax(reqUrl, params , callback) { console.log(“Request URL “+reqUrl); var cond; cond = $.ajax({ type: ‘post’, url: reqUrl, data: params, error:function(){ alert(“some error occurred”) }, success: callback }); console.log(“Server response “+cond.readyState); } // Call it as var url = “/getResult”; var params = {}; params.param1 = “test1”; params.param2 = “test2”; ajax(url, params, function(returnCallback) { […]

在Safari中没有触发JQuery Click事件?

当用户从选择框中选择一个选项时,我正在尝试做某事 – 尽可能简单吗? 我正在使用JQuery 1.3.1注册一个带有选择框id的点击处理程序。 一切都很好,直到我使用Chrome和Safari测试,发现它不起作用。 Firefox 3.05 – 是的 IE 7.0.5730.13 – 是的 IE6Eolas – 是的 Sarafi 3.2.1 – 没有 Chrome 1.0.154.43 – 没有 见下面的代码: $(document).ready(function(){ $(‘#myoption’).click(function() { alert(‘Select Dropdown was clicked: ‘+ $(‘#myoption’).val()); }); }); A B 任何人都知道我应该为此工作做什么? 警报最终会被触发,但只有在双击选择框后才能触发?

消除控制台中的404 url​​错误?

我尝试发生404错误,因为源(src)丢失了.. var $chart = $(“”) .addClass(“trend-pic”) .error(function(){ console.log(“error loading..”) }); try{ $chart.attr(“src”, jobs[counter].url + “test/trend”) }catch(err){ $chart.attr(“src”, “”); } 如果尝试了许多东西来捕获错误,即在最后放置一个.error(function(){}) 。 使用$chart.load() – 方法检查图像是否被加载? 没有那些帮助? GET {myURLString} 404 (Not Found) 浏览器:Safari