我正在开发具有大量HTML5和CSS3功能的网站。我也使用iframe在我的网站上嵌入了几个内容。如果我使用Chrome / Firefox / Safari移动浏览器打开它,它可以正常工作。但是,如果我在Facebook上分享(帖子/页面)并且我使用Facebook内部浏览器的Facebook应用程序打开它,我的网站搞砸了。
在Facebook浏览器上有调试工具或方法吗?感谢。
答案 0 :(得分:20)
这是您自己进行调试的方法。这很痛苦,但到目前为止我遇到的唯一方法。
tl; dr获取Facebook应用程序加载本地服务器上的页面,以便您可以快速迭代。然后直接将调试语句打印到页面,直到你弄清楚发生了什么。
获取本地服务器上您可以在移动设备上访问的页面的链接(在移动版Safari中测试它是否有效)。请参阅此内容以查找您的本地IP地址How do you access a website running on localhost from iPhone browser。它看起来像这样 http://192.xxx.1.127:3000/facebook-test
在您的Facebook页面上发布该链接(您可以将其设为私有,以便您的朋友不像WTF一样?)
点击Facebook移动应用中的发布链接,它将在Facebook的移动浏览器中打开
由于您没有控制台,因此您基本上需要将调试语句直接打印到页面以使其可见。将调试语句放在代码中。如果您的问题主要与CSS有关,那么您可以迭代地注释掉东西,直到找到问题或使用JavaScript打印相关的CSS属性。例如(使用JQuery)
function debug(str){$('body')。append(“< br>”+ str);}
可能是最痛苦的部分。 Facebook浏览器非常积极地缓存。如果您正在进行更改而没有发生任何事情,那是因为内容已缓存。您有时可以通过更新URL来解决此问题,例如/ facebook-test-1,/ facebook-test-2,或添加虚拟参数,例如/ facebook-test?dummy = 1。但如果更改在外部css或js表中,它有时仍会缓存。要100%清除缓存,请从移动设备中删除Facebook应用程序并重新安装。
答案 1 :(得分:5)
Facebook应用程序使用的内部浏览器本质上是一个uiWebView。 Paul Irish制作了一个简单的iOS应用程序,可以将任何URL加载到uiWebView中,然后您可以使用Safari的开发人员工具进行调试。
答案 2 :(得分:4)
我找到了一种调试起来更容易的方法。您将需要安装Ghostlab app(您在那里有7天的免费试用期,但是完全值得付费)。
要进行调试,您将拥有与Chrome devtools中相同的所有工具(这太酷了!)。例如,您可以调整CSS并实时查看更改。
答案 3 :(得分:0)
如果要调试可能的错误,可以尝试捕获并显示它。
将其放在代码的最顶部:
window.onerror = function (msg, url, lineNo, columnNo, error) {
var string = msg.toLowerCase();
var substring = "script error";
if (string.indexOf(substring) > -1){
alert('Script Error: See Browser Console for Detail');
} else {
var message = [
'Message: ' + msg,
'URL: ' + url,
'Line: ' + lineNo,
'Column: ' + columnNo,
'Error object: ' + JSON.stringify(error)
].join(' - ');
alert(message);
}
}
(来源:MDN)
这将捕获并alert
错误。
(私下)在Facebook上共享链接,或者在Facebook Messenger(更便捷)上向自己发送消息。要中断缓存,请每次创建一个新的URL,例如通过将随机字符串附加到URL。
点击链接,查看是否可以找到任何错误。
答案 4 :(得分:0)