小编Mar*_*son的帖子

如何开发Gmail的Chrome扩展程序?

我正在考虑为Gmail开发Chrome扩展程序,我想了解当前的最佳做法.

例如:

  • 默认情况下将GPG签名附加到每封电子邮件
  • 添加一个额外的按钮来做某事(我已经拥有它)
  • 劫持发送电子邮件并提示我完成某事的行动
  • ...
  • (只是他们帮我发现可能的例子)

有很多值得注意的扩展可以显着增强gmail的功能:

一种选择是窥视其位于此处的来源 ~/Library/Application Support/Google/Chrome/Default

但也许(如意思考)一个很好的教程/一套关于如何摆弄gmail UI和功能的实践?

Gmail扩展程序/小工具API - 如何在撰写工具栏中添加按钮?

您必须以编程方式创建和注入按钮.这将涉及到相当多的搜索Gmail源代码(剧透:它很难看).

如何构建chrome扩展以将面板添加到gmail窗口?

您将面临的最大长期挑战是gmail的布局会意外地发生变化并破坏电子邮件发现或修改后的UI.这两个问题要么需要一些聪明才能解决,要么需要你熬夜,想知道谷歌是否会突然破坏你的扩展.

http://www.jamesyu.org/2011/02/05/introducing-gmailr-an-unofficial-javscript-api-for-gmail/

他们都在构建具有类似功能的复杂API,如果Gmail决定显着改变他们的应用程序结构(他们不可避免地会这样做),它们都可以独立破解.

Gmail通过闭包编译器运行其代码,从而混淆了所有内容.最重要的是,Gmail可能是最复杂的JavaScript应用程序之一.

图书馆由Parse的创始人 - https://github.com/jamesyu/gmailr - 但未在1.5年内更新.


我可以告诉你到目前为止我得到了什么,并且知道我并不特别喜欢选择器 .oh.J-Z-I.J-J5-Ji.T-I-ax7

注意:http ://anurag-maher.blogspot.co.uk/2012/12/developing-google-chrome-extension-for.html (他也这样做,他也使用了这样一个混淆的选择器)

的manifest.json

"content_scripts": [
  {
    "matches": ["https://mail.google.com/*"],
    "css": ["mystyles.css"],
    "js": ["jquery-2.1.0.js", "myscript.js"]
  }
]
Run Code Online (Sandbox Code Playgroud)

myscript.js

var icon = jQuery(".oh.J-Z-I.J-J5-Ji.T-I-ax7")
var clone = icon.clone();
clone.attr("data-tooltip", "my tooltip");
clone.on("click", function() {
    jQuery(".aDg").append("<p class='popup'>... sample content ...</p>");
});
icon.before(clone);
Run Code Online (Sandbox Code Playgroud)

(重用现有的UI元素,使我的功能本身看起来像)


https://developers.google.com/gmail/gadgets_overview

有侧边栏小工具和上下文小工具,但他们不提供我想要达到的目标.

Gmail实验室是实验性功能的试验场,尚未为黄金时段做好准备.它们可能随时改变,破坏或消失.

https://groups.google.com/forum/#!forum/gmail-labs-suggest-a-labs-feature …

javascript email gmail google-chrome google-chrome-extension

55
推荐指数
3
解决办法
2万
查看次数

如何在角度1.2中使用ng-animate?

基础

angular 1.1.5 - http://plnkr.co/edit/eoKt8o4MJw9sWdYdeG3s?p=preview - WORKS

调升

角度1.2.6 - http://plnkr.co/edit/WopgAtFNVm1mKf5Li99h?p=preview - 失败


我想我确实遵循了文档中的说明 - http://docs.angularjs.org/api/ngAnimate

•首先在HTML中包含angular-animate.js

•然后通过将模块添加为依赖模块来加载应用程序中的模块

在我的时区已经很晚了,我可能会错过一些明显的东西.我的猜测是 - 1.1.5和1.2.6之间的CSS文件不兼容?真不能说......

反正这里是代码形式调升 plunker,我包括一些意见强调的是,我也跟着从文档的说明:

<!doctype html>
<html ng-app="app">
<head>
  <meta charset="utf-8">
  <title>Top Animation</title>
  <script>document.write('<base href="' + document.location + '" />');</script>
  <link rel="stylesheet" href="style.css">
  <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
  <script src="http://code.angularjs.org/1.2.6/angular.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular-animate.js"></script>
  <!-- ^^^ load animate -->
</head>

<script>
var app = angular.module('app', ['ngAnimate']); // <-- dependent module

app.controller('Ctrl', function($scope) {
  $scope.names = ['Igor Minar', 'Brad Green', 'Dave Geddes', 'Naomi Black', 'Greg …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ng-animate

20
推荐指数
1
解决办法
3万
查看次数

MongoDB mLab mongoose Node.js驱动程序 - 一段空闲时间后连接超时?

我有一个简单的Node.js使用猫鼬与连接蒙戈托管数据库MLAB.

一切似乎工作得很好:添加新记录,查询现有的东西.

有时,经过一段时间的不活动,当我看到控制台时,我看到以下内容:

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: connection timeout
    at Db.<anonymous> (___PATH___/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:168:17)
    at emitTwo (events.js:106:13)
    at Db.emit (events.js:191:7)
    at Server.listener (___PATH___/node_modules/mongodb/lib/db.js:1786:14)
    at emitOne (events.js:96:13)
    at Server.emit (events.js:188:7)
    at Server.<anonymous> (___PATH___/node_modules/mongodb/lib/server.js:274:14)
    at emitOne (events.js:96:13)
    at Server.emit (events.js:188:7)
    at Pool.<anonymous> (___PATH___/node_modules/mongodb-core/lib/topologies/server.js:334:12)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)
    at Connection.<anonymous> (___PATH___/node_modules/mongodb-core/lib/connection/pool.js:270:12)
    at Connection.g (events.js:292:16)
    at emitTwo (events.js:106:13)
    at Connection.emit (events.js:191:7)
Run Code Online (Sandbox Code Playgroud)

现在对我来说并不重要 - 我总是可以重启应用程序.我担心在制作中它会引起很多麻烦所以我先发制人地问这里有什么问题?

请注意,最初一切都工作正常,经过一段时间后,我得到了 Error: connection timeout

mongoose mongodb node.js

13
推荐指数
1
解决办法
2079
查看次数

如何在Windows 7上安装Zombie JS?(node.js无头浏览器)

我有问题,你能指出我正确的方向吗?

编辑:此模块(Contextify)不会在Windows上从npm安装.有关详细信息,请参阅https://github.com/brianmcd/contextify/issues/10.

这是因为npm在Windows上不支持C++模块:https://github.com/brianmcd/contextify/issues/14#issuecomment-3577972

一般来说,我想运行http://zombie.labnotes.org - 对于Windows,他们建议:

在Windows上,您需要Cygwin才能访问GCC,Python等.阅读本文以获取详细说明和故障排除:https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(视窗)

问题是 - 他们说Cygwin描述已经过时并建议使用Visual Studio ......无论哪种方式,我都得到了两个,我正在利用nodejs安装程序而不是从头开始构建它(错误似乎与它无关).以下是我正在做的步骤:

1)使用安装程序安装node.js:http://nodejs.org/#download

2)获得NPM包管理器:https://github.com/isaacs/npm

3)获得Python 2.7,Visual Studio 2010(因为有些消息来源表示必要的C++编译器)和Cygwin ......

4)由于安装程序在上下文失败,我搜索了

使用预构建的二进制文件只需在https://github.com/Benvie/contextify/zipball/master下载ZIP文件 ,将其解压缩到node_modules文件夹中,然后将文件夹重命名为"contextify"

c:\Program Files (x86)\nodejs>node --version
v0.6.13

c:\Program Files (x86)\nodejs>npm install zombie
npm http GET https://registry.npmjs.org/zombie
npm http 304 https://registry.npmjs.org/zombie
npm http GET https://registry.npmjs.org/ws
npm http GET https://registry.npmjs.org/jsdom/0.2.10
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/ws …
Run Code Online (Sandbox Code Playgroud)

cygwin node.js npm zombie.js

12
推荐指数
2
解决办法
5680
查看次数

区分大小写的URL - 如何使它们不敏感?

我正在努力使用mod_rewrite和.htaccess ...我需要做的就是让我的URL 不敏感.经过几次500内部服务器错误和大量的谷歌搜索,大量的堆栈溢出,我只是在寻找一个有效的解决方案.

工作:在mod_rewrite规则中转换为小写

RewriteMap tolower int:tolower
RewriteRule  ^([^/]+)/?$  somedir/${tolower:$1}
Run Code Online (Sandbox Code Playgroud)

工作:使用mod_rewrite的Case不敏感URL

CheckSpelling on
Run Code Online (Sandbox Code Playgroud)

我需要的只是简单的不区分大小写的URL :)

apache .htaccess mod-rewrite

11
推荐指数
1
解决办法
3万
查看次数

在高对比度模式下CSS实际发生了什么?

任何人都可以解释在高对比度模式下CSS会发生什么?

http://hardlikesoftware.com/weblog/2009/11/04/css-sprites-vs-high-contrast-mode/

在高对比度模式下,所有背景图像和颜色都被忽略 - 取而代之的是高对比度颜色,如黑色白色或白色黑色.另一个问题是背景图像并不总是打印出来.

除此之外还有什么吗?

高对比度模式下的登录表单

我的登录表单看起来不是很理想,我正在尝试调查.

直到最近还有https://www.google.com/search?q=axs+aol+accesibility+library,但它似乎不再存在.

一般来说,我看到有两种方法:

  1. 检测HCM(高对比度模式)并相应地调整CSS
  2. 使CSS更通用,让它在每种模式下都能运行

在任何一种情况下,我都想知道在CSS的变化方面在高对比度模式下会发生什么.

Google.com在各种浏览器中

如您所见,行为各不相同,因此您的专业知识将受到赞赏.

css accessibility high-contrast

11
推荐指数
3
解决办法
9684
查看次数

如何在Stripe nodejs库中正确创建'charge'?

客户

我正在使用Stripe Checkout自定义集成 - https://stripe.com/docs/checkout#integration-custom-以下列方式:

  var handler = StripeCheckout.configure({
    key: 'YOUR_KEY_HERE',
    image: 'images/logo-48px.png',
    token: function(token, args) {
        $.post("http://localhost:3000/charge", {token: token}, function(res) {
            console.log("response from charge: " + res);
        })
    }
  })
Run Code Online (Sandbox Code Playgroud)

使用自定义简单相反- 如何修改Stripe Checkout而不是发送AJAX请求?- 因为简单不允许我进行AJAX调用.

服务器

https://stripe.com/docs/tutorials/charges

您已获得用户信用卡详细信息的令牌,现在是什么?现在你向他们收钱.

app.post('/charge', function(req, res) {
    console.log(JSON.stringify(req.body, null, 2));
    var stripeToken = req.body.token;

    var charge = stripe.charges.create({
        amount: 0005, // amount in cents, again
        currency: "usd",
        card: stripeToken,
        description: "payinguser@example.com"
    }, function(err, charge) {
        if (err …
Run Code Online (Sandbox Code Playgroud)

node.js stripe-payments

11
推荐指数
1
解决办法
6955
查看次数

如何为静态网页刷新Amazon S3 Storage的缓存?

我正在搜索亚马逊支持论坛并找到一个帖子 - https://forums.aws.amazon.com/thread.jspa?messageID=346895䬏 - 同样的,未回答的问题......

CMD + SHIFT + DELETE:clearBrowserData(从开始时间开始)

CMD + R:刷新

没有效果

http://www.example.com.s3-website-eu-west-1.amazonaws.com/yoga/Home.html - WORKS http://www.example.com/yoga/Home.html - DAMNIT

有什么方法可以强制在Amazon S3上托管刷新网页?

amazon caching amazon-s3 amazon-web-services

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

Heroku on Rails - 无效的DATABASE_URL

编辑:一般的建议是使用CEDAR堆栈.

对于RoR,Gems,Heroku和Git来说都是新手.以下教程:http://ruby.railstutorial.org/book/ruby-on-rails-tutorial

在localhost上顺利运行,当部署到Heroku时遇到ConnectionNotEstablished错误,这里解决了这个问题:https : //stackoverflow.com/questions/7542745/heroku-error-activerecordconnectionnotestablished (BTW:以下相同教程)将生产数据库更改为PostgreSQL (gem) 'pg')它会产生另一个错误:

Visting live site

应用程序中发生错误,无法提供您的页面.请稍后重试.

如果您是应用程序所有者,请检查日志以获取详细信息.

试过这个 - Heroku应用程序崩溃,在尝试heroku rake db时收到"无效的数据库URL":migrate - heroku rake db:migrate

rake aborted!
Invalid DATABASE_URL

Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

heroku控制台

Internal server error
Run Code Online (Sandbox Code Playgroud)

的Gemfile

source 'http://rubygems.org'

gem 'rails', '3.1.1'

group :development do
  gem 'rspec-rails', '2.6.1'
  gem 'annotate', '~> 2.4.1.beta' 
  gem 'sqlite3'
end

group :test do
  gem 'rspec-rails', '2.6.1'
  gem …
Run Code Online (Sandbox Code Playgroud)

postgresql rubygems ruby-on-rails heroku ruby-on-rails-3

7
推荐指数
2
解决办法
6562
查看次数

如何让Google登录令牌有效期超过1小时?

我已成功实施Google登录.

我能够对用户进行身份验证,并在回复时收到令牌.但令牌在1小时后到期.

expires_in: "3600"

我尝试在文档中搜索 - https://developers.google.com/identity/sign-in/web/reference - 但找不到参数来延长令牌的生命周期.

在此输入图像描述


我实际上想做什么?

https://developers.google.com/identity/sign-in/web/backend-auth

用户成功登录后,使用HTTPS将用户的ID令牌发送到您的服务器

我正在向服务器发送每个请求的令牌:

endpoint/get?access_token=" + access_token

然后在我正在呼叫的服务器上 https://www.googleapis.com/oauth2/v3/tokeninfo

所以我有一个令牌,每个请求都经过身份验证,但在工作1小时后,该tokeninfo方法返回false,我需要重新验证用户身份.

在我的代码中,我通过存储所有历史记录来规避,access_tokens如果客户端使用旧令牌,我会检查历史数据并手动发出新令牌refresh_token (我的一个权限是授予离线访问权限)


是的,我很想知道:

  • 如何延长寿命access_token

要么

  • 鉴于有限的生命周期如何确保请求在后端进行身份验证?

authentication oauth access-token google-oauth google-signin

7
推荐指数
2
解决办法
4990
查看次数