2016-07-25 92 views
0

试图显示Firebase存储中的图像和链接&数据库。在桌面浏览器和Android设备上工作得很好,但不会在iOS设备上显示(移动Safari)。有什么明显的,我在这里失踪或可能是一个错误?该页面正确显示了图像链接应该在的空间。(Firebase存储)托管图像无法在iPhone浏览器上显示

解除代码如下。显然,由于其他浏览器Firebase上的作品都已正确初始化,因此未包含脚本标记。

<div class="livewire1"> 

<a href="" target="_blank" ><img id="myimg" width="100%" height="100%"/></a> 


<script> 

    var anchors = document.querySelectorAll('a'); 
    Array.prototype.forEach.call(anchors, function (element, index) { 
     var dbRef1 = firebase.database().ref().child('sponsorlink/hole01'); 
     dbRef1.on('value', snap => element.href = snap.val()); 

    }); 

    var storageRef = firebase.storage().ref(); 
    var imagesRef = storageRef.child('banner_ads'); 
    var fileName = 'ban_01.png'; 
    var bannerRef = imagesRef.child(fileName); 

    bannerRef.getDownloadURL().then(function(url) { 
     var banner1 = url; 
     document.getElementById('myimg').src = banner1; 

    }).catch(function(error) { 

    }); 
</script> 
</div> 

感谢

+0

你通过代码在调试器步骤?它进入'then()'块吗?那个时候的“url”是什么? –

+0

@FrankvanPuffelen,你好,dbRef1.on('value',snap => element.href = snap.val());在safari的调试器中,这给出了一个意外的令牌“>”的错误,这也是一个在控制台中打印的URL的图像,不知道这是不是你的意思,但[图片](http://www.w1gcms。俱乐部/调试/ screen1.png) –

回答

0

固定我的问题间接地感谢弗兰克面包车Puffelen和检查上的Safari移动的调试器,但让人意想不到的语法“>”上的卡值 dbRef1.on('value', snap => element.href = snap.val()); 似乎是什么导致存储图像不加载。

ES6箭头功能,Safari和Internet Explorer不支持。 AngularJS - SyntaxError: Unexpected token '>'error in Safari Browser

解决了与以下:

dbRef1.on('value', function(snap) { element.href = snap.val()});