小编Hel*_*rld的帖子

FB.ui share_open_graph奇怪的对话行为

我需要通过javascript在Facebook上实现URL共享,并分享图片.当FB共享对话框出现时,它会开始缩小,并且越来越多地缩小,直到它变成大约20像素宽.

并且它使用share_open_graph或"share"方法发生.

此外,在JS控制台上,当出现共享对话框时,我看到此错误:

ErrorUtils caught an error: "<![EX[["Could not find element \"%s\"%s 
from module \"%s\"","u_0_18","","__el...". 
Subsequent errors won't be logged; see https://fburl.com/debugjs.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

<script>
    $(document).ready(function() {
        $.ajaxSetup({ cache: true });
        $.getScript('//connect.facebook.net/en_US/sdk.js', function(){
            FB.init({
                appId: '476337039102253',
                version: 'v2.8'
            });
            FB.getLoginStatus(APP.fbUpdateStatusCallback);

        });            
});
</script>

<button id="itb" class="btn btn-primary btn-large active_down" name="btn" onclick="
            FB.ui({
                method: 'share_open_graph',
                action_type: 'og.shares',
                action_properties: JSON.stringify({
                    object: {
                        'og:url': 'https://example.com',
                        'og:title': 'page title',
                        'og:description': 'desc',
                        'og:image': 'https://savebybooking.s3.amazonaws.com/public/prd/File_341'
                    }
                })             
            }, function(response){
                if (response &amp;&amp; !response.error_message) {
                  console.log('fb sharing OK: …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-javascript-sdk

6
推荐指数
1
解决办法
2436
查看次数

将IPv6地址转换为64位double

IPv6地址是底层的128位无符号整数,因此它们的值范围为[0,3.40×10 ^ 38]

一个128位寄存器可以存储2 ^ 128(超过3.40×10 ^ 38)个不同的值。可以以128位存储的整数值的范围取决于所使用的整数表示形式。对于两种最常见的表示形式,范围是0到340,282,366,920,938,463,463,374,607,431,768,211,455(2 ^ 128?1),表示为(无符号)二进制数, https://en.wikipedia.org/wiki/128位

但是,无论使用哪种语言,双精度浮点变量都可以高达±1.79769313486231570e + 308,因此它绝对可以假定128位int可以且甚至可以包含所有值。

我确定有一个现成的功能/库/代码可以从IPv6 => double转换。任何人都可以发布代码来做到这一点,或链接吗?

谢谢

最好是PHP,但是您可以用其他语言发布代码,我将翻译成PHP。

PS我已经阅读了这个相关问题,可以双重使用来存储和安全地检索128位IPv6吗?但是IMO的答案是错误的,因为您不需要与IPv6地址(128位)具有相同位的变量。您只需要它能够假定IPv6可以具有的所有可能值。正如我上面所说,双精度数可以表示128位int甚至更多的可能值,尽管它仅仅是64位。

那怎么可能

这就是浮点寄存器的魔力。与整数计算相比,它们进行计算的CPU资源更多,但功能更强大。

编辑:为什么我需要这种转换:我有一个MySQL表,其IPv6地址定义为DECIMAL(39),这是一个39位的整数。如果是IPv6,我需要按访问者的地址查询该表。

php c++ floating-point ipv6

-3
推荐指数
1
解决办法
123
查看次数