小编Ste*_*fan的帖子

chrome扩展插入内容脚本在浏览器操作上

我试图基本上做一个元素荧光笔chrome扩展.工作流程: - 单击浏览器图标 - 单击页面 - 高亮显示单击的元素

使用manifest_version在浏览器操作中运行内容脚本时遇到麻烦:2当我检查出现的弹出窗口时,它说:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script-src'self'chrome-extension-resource:"(popup.html:5).

这是popup.html中的内联脚本的位置,脚本不起作用

我有:

manifest.json的:

{
   "browser_action": {
      "default_icon": "images/icon.gif",
      "default_popup": "popup.html"
   },
   "manifest_version": 2,
   "description": "MEH!",
   "name": "My First Extension",
   "permissions": [
      "tabs", "http://*/*", "https://*/*"
   ],
   "version": "0.1"
}
Run Code Online (Sandbox Code Playgroud)

popup.html:

<html>
  <head>
  </head>
  <body>
    <script>
      chrome.tabs.executeScript(null,{
        code:"document.body.style.backgroundColor='red'"
      });
    </script>
    <div id='msg' style="width:300px">...</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感谢

javascript google-chrome-extension

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

AngularJS更改了编译指令的顺序

据我所知,Angular按照先到先得的原则编写了一些内容,这有点棘手.我做了一个包含一些元素的指令,我希望有一个链接属性来查找内容中的东西.

对于一个具体的用例:我正在制作一个输入标签指令,它在内容中查找第一个输入,并将随机生成idinput一个for属性添加到label

这是代码:

// Find the first element with the attribute ng-label-target or the first input and links a label to it
app.directive('ngLabel', function () {
  return {
    restrict: 'E',
    replace: true,
    transclude: true,
    scope: {
      label: '@',
    },
    template: '<span class="ng-label">' +
                '<label class="ng-label-text">{{label}}</label>' +
                '<span class="ng-label-content" ng-transclude></span>' +
              '</span>',
    link: function (scope, element, attrs) {
      scope.id = scope.id || 'random-id-' + Math.floor(Math.random() * 90000000);
      angular.element(element[0].querySelector('.ng-label-text')).
        attr({for:scope.id});

      var target = angular.element(element[0].querySelector('[ng-label-target]'));
      if …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-directive angularjs-ng-repeat

15
推荐指数
1
解决办法
7984
查看次数

jQuery - 按下角色 - 无论键盘如何

我试图用jQuery检索插入到textfield/input中的字符.

我使用通常的:

var character = String.fromCharCode( e.keyCode || e.which );
Run Code Online (Sandbox Code Playgroud)

方法,但唯一的问题是当我使用不同的键盘布局,我刚注意到.

例如,在标准美国键盘上,它可以很好地工作.对于instanece的德语键盘,如果我将语言设置为英语 - 基本上将其设置为标准美国键盘,当我按下相当于的字符时:;'\,./[]=-,我会得到我实际在键盘上看到的德语字符(尽管英语相当于被添加到输入中).

例如:如果console.log( character )我得到以下句子:

  • 在输入中: []\';/.,
  • 在控制台中: ÛݺÞܼ¾¿

我显而易见的问题是,我怎样才能确保获得真正的字符插入器?

javascript jquery character-encoding

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

Android模拟快速刷卡

我正在做一个通用的自动化脚本.

我需要将复杂的滑动事件发送到Android屏幕,而无需专门访问重点应用程序

到目前为止,我认为最好的方法是使用adb,使用sendevent命令创建文件,将其推送到设备并从那里运行.即便如此,它也非常缓慢(与我用getevent录制并将其重新插入时相比要慢得多).

我设法优化文件,因为我发现每个sendevent块并不特别需要X和Y,但它仍然慢了几个数量级

文件的一部分示例(我正在尝试HTC One):

sendevent /dev/input/event5 3 57 49
sendevent /dev/input/event5 3 53 942
sendevent /dev/input/event5 3 54 2747
sendevent /dev/input/event5 0 0 0

sendevent /dev/input/event5 3 53 1207
sendevent /dev/input/event5 3 54 2483
sendevent /dev/input/event5 0 0 0

sendevent /dev/input/event5 3 53 1472
sendevent /dev/input/event5 0 0 0

sendevent /dev/input/event5 3 54 2218
sendevent /dev/input/event5 0 0 0

sendevent /dev/input/event5 3 53 1207
sendevent /dev/input/event5 3 54 2483
sendevent /dev/input/event5 0 0 0

sendevent /dev/input/event5 3 53 …
Run Code Online (Sandbox Code Playgroud)

android adb

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

mongoose模式检查是否第一次保存模型实例

我有3个模式,其中2个有一个.pre('save')钩子将其推_id入前一个模式.您可以以论坛为例,其中包含主题,问题和评论

var topicSchema = new Schema({
  arr: {type:[Schema.ObjectId], ref:'Question'},
});
var Topic = new mongoose.model('Topic', topicSchema);

var questionSchema = new Schema({
  targetId: {type:Schema.ObjectId, ref:'Topic', required:true},
  arr: {type:[Schema.ObjectId], ref:'Comment'},
});
var Question = new mongoose.model('Question', questionSchema);

var commentSchema = new Schema({
  targetId: {type:Schema.ObjectId, ref:'Question', required:true},
});
var Comment = new mongoose.model('Comment', commentSchema);
Run Code Online (Sandbox Code Playgroud)

现在对于我想要的上述模式:当我保存一个问题时,我想自动将问题推_id送到各自的问题Topic.arr,当我保存评论时将其自动推送到各自的Question.arr

我尝试使用.pre('save')钩子解决这个问题,如下所示:

function addPreSave (schema, idProperty, containerProperty) {
  var modelName = schema.paths[idProperty].options.ref;
  var model = mongoose.models[modelName];

  schema.pre('save', function …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

7
推荐指数
1
解决办法
2063
查看次数

chrome扩展删除脚本标记

我到处试图找到这个问题的答案.我希望我的扩展能够禁用页面上的所有javascript但允许插入一个有效的脚本.(所以chrome.contentSettings.javascript现在不是一个有效的选项)或者我想要一种方法来删除它们中的任何一个之前的所有脚本标签(这有点相同)

我尝试将内容脚本插入runat:document_start但当时dom并不完全存在.itried在加载状态时在tabs.onUpdate上添加了一个竞争对手但是为时已晚,以及document_end中的内容脚本(所有这些都试图删除脚本标记)但是现在还为时已晚.在绝望的行为中,我试图改变element.innerHTML的getter和setter的行为.删除标签但不起作用

我试图避免向location.href发送xhr请求并解析和重新设置内容,因为它太密集了.

有任何想法吗?

javascript jquery dom google-chrome-extension

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

节点 exec() 未触发所有数据事件

似乎足够大的标准输出输出节点不会触发data事件:

bash 脚本示例:

#!/usr/bin/env sh

for i in {1..100000}; do
    echo $i
done
Run Code Online (Sandbox Code Playgroud)

从 bash 运行上述脚本应该打印从 1 到 100k 的所有数字,每行一个数字

但是,当通过节点代理它时exec

#!/usr/bin/env node --harmony --harmony_destructuring --harmony_default_parameters

const {exec} = require('child_process');

let stdout = '';

const child = exec('./tmp.sh');

child.stdout.on('data', data => {
    stdout += data;
});

child.stdout.on('close', code => {
    if (code) process.exit(code);
    console.log(stdout.split('\n').slice(0, 3).join('\n'));
    console.log('...');
    console.log(stdout.split('\n').slice(-3).join('\n'));
});
Run Code Online (Sandbox Code Playgroud)

对于上面的脚本,我期望得到:

1
2
3
...
99998
99999
100000
Run Code Online (Sandbox Code Playgroud)

但是,当运行时它返回:

1
2
3
...
35984
35985
Run Code Online (Sandbox Code Playgroud)

大约三分之一的输出被截断。记录处理程序内部data显示仅使用 …

javascript node.js

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

在CSS中跨越整个父宽度的3个相等大小的链接?

我有以下问题:我试图使3个链接/锚点(填充和边框X和边距0)具有相同的大小(或至少第一个和最后一个),并且它们的所有3个一起跨越100%父宽度.

无论我如何尝试它,它都没有远离跨浏览器(新的浏览器,而不是糟糕的IE7)所以我很好奇,如果有人在那里知道如何做到这一点

示例代码:

<style>
.menu{
  background : lightblue;
  width      : 320px;
  text-align : center;
}
.btn{
  display    : inline-block;
  background : #fff;
  border     : 1px solid #666;
  padding    : 5px 10px;
}
</style>

<div class="menu">
  <a href="#" id="btn1" class="btn">Btn1</a>
  <a href="#" id="btn2" class="btn">Btn2</a>
  <a href="#" id="btn3" class="btn">Btn3</a>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我尝试了从将它们添加到具有3列的表到设置的所有内容,box-sizing:border-box;但似乎没有任何效果

理想的结果是3个锚点的总宽度等于父宽度(320px)

css

2
推荐指数
1
解决办法
223
查看次数