【问题标题】:Facebook and Unity3D JS injection difficultiesFacebook 和 Unity3D JS 注入困难
【发布时间】:2014-05-08 15:48:40
【问题描述】:

我想在我的 Facebook 游戏下显示一些 HTML 元素。具体来说,是带有网站链接的图片,但这不是问题的重点。

我了解需要什么,并已成功使用 Application.ExternalEval() 方法和 Facebook 提供的示例 JS 字符串在游戏本身顶部添加一些 HTML 文本。

我正在关注this page上的信息。

我尝试了以下排列:

"var insertionPoint = body.children[0]; " + "body.insertBefore(headerElement, insertionPoint);";

"var insertionPoint = body.children[0]; " + "body.insertBefore(headerElement, insertionPoint.nextSibling);";

"var insertionPoint = body.children[1]; " + "body.insertBefore(headerElement, insertionPoint);";

经过几个小时令人沮丧的试验和错误,我无法生成有效的 JS 注入代码来在画布上的游戏本身下方立即显示 HTML。有人可以帮忙吗?

【问题讨论】:

    标签: javascript facebook unity3d facebook-unity-sdk


    【解决方案1】:

    一分钟以来,我一直在尝试做同样令人沮丧的事情,这就是我得出的结论,必须为不同的浏览器使用不同的技术。

    string injection = "if(navigator.userAgent.indexOf(\"Firefox\") >= 0){;" +
    
                "var headerElement = document.createElement('div');" +
                "headerElement.innerHTML = '<img src=\"URLTOSOURCE" style=\"width: 100%; text-align: center\" />';" +
                "var body = document.getElementsByTagName('body')[0];" +
                "var insertionPoint = body.lastChild;" +
                "body.insertBefore(headerElement, insertionPoint);" +
    
                "}else{;" +
    
                "var headerElement = document.createElement('div');" +
                "headerElement.innerHTML = '<img src=\"URLTOSOURCE" />';" +
                "var body = document.getElementsByTagName('body')[0];" +
                "var insertionPoint = body.children[0]; " +
                "var unityPlayer = document.getElementById('unityPlayerEmbed');" + 
                "unityPlayer.parentNode.insertBefore(headerElement, unityPlayer.nextSibling);" +
                "var embedTag = unityPlayer.getElementsByTagName('embed');" + 
                "embedTag[0].setAttribute('style','display:block;width:1200px;height:600px');" +
    
                "};";
    
        Application.ExternalEval(injection);
    

    【讨论】:

    • 这非常有效——我在 Chrome 上进行了测试,只需要 Firefox 代码,以及正确设置画布高度。谢谢!
    【解决方案2】:

    这应该可以解决问题!

    "var insertionPoint = body.lastChild;"
    

    我在我的博客上发布技巧和教程,也可以查看 facebook sdk 教程!

    blog.bigfootgaming.net

    【讨论】:

    • 这不起作用 - 当我使用 body.lastChild 时,文本消失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多