小编And*_*wby的帖子

捕获JS错误的最简单方法

我一直在研究如何捕获JavaScript错误,然后将它们发送到我们自己的系统进行内部日志记录(因此我们可以尝试在可能的情况下进行复制,并修复任何可能的错误).到目前为止,我已经找到了不少付费服务:

TrackJS一个看起来有趣,但我们真的负担不起每个月花费了没有更多的钱.然后我遇到了这个图片:

http://www.stacktracejs.com/#!/docs/stacktrace-js

我似乎无法忍受它.这是我正在尝试的:

window.onerror = function(msg, file, line, col, error) {
    StackTrace.fromError(error).then(callback).catch(errback);
};

var callback = function(stackframes) {
    var stringifiedStack = stackframes.map(function(sf) {
        return sf.toString();
    }).join('\n');
    console.log(stringifiedStack);
};

var errback = function(err) {
        console.log(err);
};

StackTrace.get().then(callback).catch(errback);
Run Code Online (Sandbox Code Playgroud)

......我得到的就是:

TypeError:ErrorStackParser未定义

var stackframes = ErrorStackParser.parse(error);

任何人都可以建议一个解决方案,或者看看我对stacktrace.js脚本做错了什么?

更新:在下面的帮助下,我至少能够让它现在做点什么.结果你需要多个js库:

但是,我似乎仍然无法继续下去.

var callback = function(stackframes) {
    console.log(stackframes)
    var stringifiedStack = stamap(function(sf) {
        return sf.toString();
    }).join('\n');
    console.log(stringifiedStack);
};

var errback = function(err) { …
Run Code Online (Sandbox Code Playgroud)

javascript stack-trace stacktrace.js

16
推荐指数
1
解决办法
1434
查看次数

CFBundleVersion不匹配 - CFBundleVersion值与其包含的iOS应用程序的CFBundleVersion值不匹配

我是整个应用程序世界的新手,这是我第一次使用X代码(我过去构建的应用程序,使用Phonegap Build)

无论如何 - 我设法创建了一个贴纸页面(最终!).现在我已对它做了一些修改,但我不能为我的生活找出如何上传它!推送时出现此错误:

CFBundleVersion Mismatch - 扩展名为"Steampunk Junkies™Sticker Pack.app/PlugIns/StickerPackExtension.appex"的CFBundleVersion值"1"与其包含的iOS应用程序"Steampunk Junkies™Sticker Pack.app"的CFBundleVersion值"1.0.5.1"不匹配".

CFBundleShortVersionString不匹配 - 扩展名为"Steampunk Junkies™Sticker Pack.app/PlugIns/StickerPackExtension.appex"的CFBundleShortVersionString值"1.0"与其包含的iOS应用程序"Steampunk Junkies™Sticker Pack.app"的CFBundleShortVersionString值"1.0.5"不匹配".

纠正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect.

我的配置看起来像:

在此输入图像描述

在此输入图像描述

在此输入图像描述

我以前从来没有必要在X-Code中管理版本号 - 所以我很可能在更改版本号时错过了重要的一步.

有人可以帮帮我吗?它让我上了墙!

注意:我正在使用X-Code 8.2 beta(他们为您提供从开发者区域下载的版本)

更新:非常感谢shallowThought帮助我!虽然我的设置看起来并不像他发布的那样,但它让我环顾四周找到他正在谈论的地方.最后,我发现它带有"向下箭头",如下图所示:

在此输入图像描述

一旦我点击它,它让我查看包的其他部分的信息.伙计,我不敢相信我错过了!

ios imessage-extension

11
推荐指数
2
解决办法
6545
查看次数

Facebook API - 每个应用程序的不同用户ID?

我目前正在开发移动应用程序,因此我需要专门为此目的使用新的应用程序.看起来很愚蠢的是,Facebook决定为每个应用程序使用不同的"用户ID".除了没有看到这一点上的重点,我感到困惑的是我如何为给定用户提取相同的userId,以便与我的数据库匹配.我正在使用oauth.io来处理登录,并返回值:

$('#facebook-login').click(function() {
    $('#ajax_spinner_wrapper').show();
    OAuth.initialize('CmRGYdnRMWM2ZrOb7M1Nf1_T57o');
    OAuth.popup('facebook').done(function(result) {
        //console.log(result)
        result.get('/me').done(function(data) {
            //todo with data
            console.log(data);

            $.post('https://steampunkjunkies.net/cgi-bin/mobi_login.cgi', { action: 'store_session', what: 'facebook', user: data.id }, function(result) {
                $('#ajax_spinner_wrapper').hide();
            });
        }).fail(function(err) {
            //todo with err
            console.log("Hit an error?");
        });


    })
    .fail(function (err) {
        alert("oops, we got an error!");
        console.log(err);
        $('#ajax_spinner_wrapper').hide();
    });

    return false;
});
Run Code Online (Sandbox Code Playgroud)

但问题是,它在每个应用程序中给出了完全不同的Id.以下是我基于网络的内容:

'id' => '838605583',
Run Code Online (Sandbox Code Playgroud)

..然后使用我的oauth.io(https://oauth.io)设置中的其他应用程序:

id  "10155167132970584"
Run Code Online (Sandbox Code Playgroud)

两者都是完全相同的用户.

有没有办法关联这些Id,所以我可以将它们匹配在一起?令人惊讶的是,Facebook并不认为这样的事情会成为一个问题!

注意:关于此更改,来自Facebook的一些信息:

https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

当人们首次登录针对API的v2.0编码的应用实例时,Facebook将开始发布应用范围的用户ID.使用应用范围的ID,同一用户的ID在不同应用之间会有所不同.

无论他们最初用于注册您的应用的版本如何,对于已登录您应用的用户,ID都将保持不变.对于在过去的任何时间点登录您的应用的任何人,此更改都是向后兼容的.

如果您没有跨应用程序映射ID,则不需要更改代码.如果您需要跨多个应用映射相同的用户ID或运行跨应用促销,我们添加了一个名为Business Mapping API的新API.这使您可以跨应用程序映射登录用户的ID,只要这些应用程序全部归同一企业所有.详细了解如何实施交叉促销.

对于尚未登录您应用的用户,用户ID可能会根据您调用的API版本而更改.在API的v1.0中,未登录到您的应用程序的用户将通过其原始Facebook用户ID引用,而在v2.0中,将通过应用程序作用域ID引用它们.

我们添加了新的API端点,允许您标记和邀请不使用您的应用的朋友.这些API返回令牌,可用于生成标记和邀请的自定义界面.这些令牌并不意味着可以缓存,我们无法保证它们在收到包含它们的API响应后24小时内保持稳定.它们与未登录到应用程序的人员使用的数据ID或应用程序范围ID相同.

用户可以在应用程序的"编辑设置"对话框中检查他们安装的每个应用程序的应用范围ID.确保您的应用用户在与您联系并提供支持查询时知道如何找到它

我真的没有得到他们的逻辑.为每个用户设置唯一标识符更有意义,可用于针对任意数量的应用程序进行验证.在我的情况下,有人登录我们的基于Web的应用程序,然后他们也想登录到移动应用程序 - 但它有一个不同的用户ID,所以没有办法将2连接在一起!Eugh

facebook oauth.io

9
推荐指数
1
解决办法
8158
查看次数

在PhoneGap Build中启用iOS 7的cookie

我正试图让我的WebAppiPad(iOS 7)上班.根据我所做的所有研究,您似乎需要专门启用cookie(善良知道原因!)

我在SO上发现这篇文章:

如何为Android phonegap 1.8.0 app启用cookies?

这一切都很好,除了我PhoneGap Build用来创建我的应用程序的事实(因此无法访问这些文件进行编辑)

谁能建议我能做什么?localStorage在没有做这个黑客的情况下我无法在我的iOS应用程序上使用(或cookie)似乎很疯狂!(我的应用程序在Android上完美运行,没有这个问题).

我已经看过安装XCode并手动编码/编译应用程序,但这只适用于Mac(我没有)

更新:浏览一下,似乎唯一的解决方案(我能找到)就是编写一个插件来启用cookie.这一切都很好,但是:

  • 我没有Mac来写它
  • 我可以编写很多语言,但Java不是其中之一
  • 我怎么能把它添加到他们的构建列表中,所以我可以包含它!

有人有兴趣为我写一个插件吗?据我所知,它只需要调用:

CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
webView = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)

这让我起了墙!

ios cordova phonegap-build

5
推荐指数
1
解决办法
2349
查看次数

如何动态添加"pin it"按钮?

我正在尝试优化我的Wordpress安装 - 我看到的其中一个罪魁祸首是Pinterest的" Pin It "按钮小部件.我现在正试图找到一种动态加载JS代码的方法(当它们最初悬停在按钮上时),然后将其应用到页面.到目前为止,我只能做到这一点:

jQuery(document).on("mouseenter click",'.pinItSidebar', function() {
    jQuery.getScript("http://assets.pinterest.com/js/pinit_main.js", function() {
        // do something here?
    });
});
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到一个我可以调用的函数(作为一个回调,在加载JS之后).显然我每页加载只会做一次(上面只是一个非常基本的版本)

有没有人对我如何实现这一点有任何建议?我希望它如何运作的最终游戏是:

它目前如何运作的例子

工作方案:

这是我现在得到的一个可行的解决方案,只有当他们点击按钮(然后再触发开启器)时,才允许你加载pinterest东西.这背后的想法是,它节省了大量的Pinterest JS/CSS/onload调用,这减慢了页面的速度.

jQuery(document).on("click",'.pinItSidebar', function() {
    if (typeof PinUtils == "undefined") {
        jQuery.getScript("http://assets.pinterest.com/js/pinit_main.js", function() {
            PinUtils.build();
            PinUtils.pinAny();
        });
    } else {
        PinUtils.pinAny();
    }
});
Run Code Online (Sandbox Code Playgroud)

......只需拨打:

<a href="javascript:void(0);" class="pinItSidebar">foo</a>
Run Code Online (Sandbox Code Playgroud)

希望这有助于节省其他人一些时间:)

额外的调整:我只是在玩,看看我能不能让它更加出色:)基本上,我希望能够决定哪些图像是可以固定的.在下面这将为您做到这一点:

jQuery("img").each(function() {
    if (jQuery(this).data('pin-do')) {
        // its ok, lets pin
    } else {
       jQuery(this).attr('nopin',"1");
    }
});
Run Code Online (Sandbox Code Playgroud)

你需要做的就是使图像可以固定,让data-pin-do="1"param设置你想让它们分享的图像:)

javascript jquery pinterest

5
推荐指数
0
解决办法
826
查看次数

在某些屏幕尺寸下将.btn-group拆分到另一条线上

我正在玩Bootstrap 4(alpha 6),我喜欢到目前为止看到的内容.我遇到的一个问题是如何btn-group使用复选框/无线电进入,一旦它对于页面太宽就会移动到第二行.举个例子:

http://codepen.io/youradds/pen/KaBJEm

<div class="btn-group" data-toggle="buttons">
      <label class="btn btn-secondary">
        <input type="checkbox" name="foo" class="checkbox" value="1" autocomplete="off" />
        Piscine
      </label>
      <label class="btn btn-secondary">
        <input type="checkbox" name="foo" class="checkbox" value="1" autocomplete="off" />
        Piscine
      </label>
.... loads of other buttons too
</div>
Run Code Online (Sandbox Code Playgroud)

根据此文档:

http://v4-alpha.getbootstrap.com/components/buttons/#checkbox-and-radio-buttons

如果你在宽度上缩小CodePen,你会看到我的意思.我想要发生的是它移动到第二行(而不是强制页面宽度来容纳它).

这甚至可能吗?

twitter-bootstrap-4 bootstrap-4

5
推荐指数
1
解决办法
985
查看次数

Chrome远程连接连接但随后退出

我真的很难让谷歌Chrome远程调试工作!我有手机设置并确认:

在此输入图像描述

然后下面是我所看到的chrome://inspect/#devices和也F12(都在同一时间开放);

在此输入图像描述

它以"已连接"闪烁约3秒钟,然后转到:

离线

ZX1G324RSV待定身份验证:请接受设备上的调试会话.

它让我疯狂,因为它应该很简单,但它只是不想打球:/我需要做一些特别的事吗?我以前在这台电脑上使用过它,虽然我第一次玩的时候还有一些有趣的游戏,但之后就可以了.

似乎有很多关于如何解决它的帖子/文章,但它们都没有为我工作.例如,https://bugs.chromium.org/p/chromium/issues/detail?id = 450492.

google-chrome-devtools

5
推荐指数
1
解决办法
500
查看次数

UTF-8编码的JSON文件,尝试使用JSON模块解析 - 宽字符

我有一个非常简单的 Perl 脚本:

use JSON;

use open qw/ :std :encoding(utf8) /;

#my $ref = JSON::decode_json($json_contents);

my $path = "/home/chambres/web/x.org/public_html/cgi-bin/links/admin/booking_import/import/file.json";

my $json_contents = slurp_utf8_file($path);

my $ref =  JSON->new->utf8->decode($json_contents);

sub slurp_utf8_file {

  my @back;
  #open my $in,  '<:encoding(UTF-8)',  $_[0]  or die $!;
  open my $in,  "<$_[0]" or die $!;
    while (<$in>) {
      push @back, $_
    }
  close ($in);

  return join("", @back);
}
Run Code Online (Sandbox Code Playgroud)

该文件在 Notepad++ 中以 UTF-8 编码:

在此输入图像描述

...但是当我运行脚本时我得到:

perl test.cgi
Wide character in subroutine entry at test.cgi line 11.
Run Code Online (Sandbox Code Playgroud)

11号线是:

my $ref …
Run Code Online (Sandbox Code Playgroud)

perl utf-8

5
推荐指数
1
解决办法
2153
查看次数

Google Maps API 在 IE11 中抱怨 polyfill Array.from()

我试图找出Google Maps v3和我们用于非 ES6浏览器(例如 IE11)的 polyfill 的问题。我们得到的错误是:

This site overrides Array.from() with an implementation that doesn't support iterables, which could cause Google Maps JavaScript API v3 to not work correctly.
Run Code Online (Sandbox Code Playgroud)

polyfill 是:(来自https://vanillajstoolkit.com/polyfills/arrayfrom/

if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { …
Run Code Online (Sandbox Code Playgroud)

google-maps-api-3 polyfills

5
推荐指数
1
解决办法
661
查看次数

Perl GD模块无法安装 -

我试图找出为什么我无法在我的Debian 7服务器上安装GD perl模块.以下是我安装核心内容的方法:

sudo apt-get install libgd-gd2-perl
Run Code Online (Sandbox Code Playgroud)

然后运行-MCPAN进行安装,我得到:

root@myserver:~# sudo perl -MCPAN -e 'install GD'
Going to read '/root/.cpan/Metadata'
  Database was generated on Sun, 19 Jul 2015 21:41:02 GMT
Running install for module 'GD'
Running make for L/LD/LDS/GD-2.56.tar.gz
Checksum for /root/.cpan/sources/authors/id/L/LD/LDS/GD-2.56.tar.gz ok

  CPAN.pm: Going to build L/LD/LDS/GD-2.56.tar.gz

Configuring for libgd version 2.0.36.
Checking for stray libgd header files...none found.

Unknown option: installdirs
Usage: perl Build.PL [options]

Configure GD module.

 Options:
     -options       "JPEG,FT,PNG,GIF,XPM,ANIMGIF"   feature options, separated by commas
     -lib_gd_path   path            path …
Run Code Online (Sandbox Code Playgroud)

perl gd cpan

4
推荐指数
1
解决办法
8289
查看次数