小编mar*_*ark的帖子

angular-ui select2 initSelection未被调用

我的页面上有一个angular-ui select2组件.当用户输入内容时(它使用ajax加载数据),它可以正常工作.

但initSelection函数永远不会被调用.这是我传递给select2的配置对象

{
    multiple: true,
    minimumInputLength: 1,
    tokenSeparators: [",", " "],
    createSearchChoice: function (term) {
        return term;
    },
    width: 'resolve',
    ajax: {
        url: '...',
        method: 'GET',
        quietMillis: 100,
        data: function (term, page) {
            ...
        },
        results: function (data, page) {
            ...
        }
    },
    initSelection: function (element, callback) {
        console.log('initSelection');
        return $.ajax({
            url: "...",
            type: "GET",
            data: {
                ...
            },
        }).done(function(data) {
            console.log(data);
            return callback(data);
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

"initSelection"永远不会记录到控制台.为什么不调用initSelection?

javascript angularjs jquery-select2 angular-ui

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

如何不在chrome扩展内容脚本中继承样式

我正在编写一个Google Chrome扩展程序,可在每个页面上运行内容脚本.在我的内容脚本中,我在页面中注入了<div>一些<ul><li>子项.我在样式表中为这些元素指定了几种样式.

但我发现在一些随机页面上我的元素将继承网页上定义的样式,因为我没有为我的div指定每个样式属性.

什么是我可以阻止我注入的元素继承这些样式的最佳方法?

在我看来,我可以:

  • 指定样式表中的每一个样式(例如,通过查看没有干扰时计算出的样式),或者
  • 我可以把我的<div>内心<iframe>.但是,我必须在我的内容脚本的iframe和源页面之间传递hella消息,因为chrome://我的iframe src 的URL 和源页面的URL http://将被视为跨源.

css iframe google-chrome-extension

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

Chrome中的多行文字的省略号

-o-ellipsis-lastline谷歌浏览器有什么类似的东西吗?

我正在构建Chrome扩展程序,并希望使用CSS来删除多行文本.

html css ellipsis

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

如何使用 Intl 在 javascript 中获取月份名称列表

如何使用ECMAScript 国际化 API获取所有长月份名称的列表?

例如,如果用户的语言环境是en-US,我想得到以下信息:

["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
Run Code Online (Sandbox Code Playgroud)

javascript localization internationalization

5
推荐指数
2
解决办法
2909
查看次数

在javascript中测试多个正则表达式的字符串

我想针对20个左右的正则表达式测试一个给定的字符串.在Javascript中执行此操作的干净方法是什么?我更关心清晰的代码和可读性而不是效率(但我也不希望它超级慢).

现在我有:

if (href.indexOf('apple.com') > -1 ||
    href.indexOf('google.com') > -1 ||
    href.indexOf('yahoo.com') > -1 ||
    href.indexOf('facebook.com') > -1) {
    performDarkMagic()
}
Run Code Online (Sandbox Code Playgroud)

但随着该列表的增长,它将开始变得那么混乱.也许我可以创建一个正则表达式数组并执行类似_.any()的东西并在每个表达式上应用regex.test?

编辑:要匹配的字符串/正则表达式可能会变得更复杂,我只是使用简单的URL来使示例可读.

javascript regex

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

javascript - 如何minfy/obfuscate全局函数名称?

我有一些代码具有以下格式:

function myfunc1 () { ... jquery.bind('click', myfunc2) ... }
function myfunc2 () { ... }
...
Run Code Online (Sandbox Code Playgroud)

是的,功能是全局的,但是因为我在谷歌浏览器扩展内容脚本中编写,所以它是沙箱.

现在,我正在尝试缩小和混淆代码.我已经尝试过YUI Compressor和Google Closure编译器.问题是,我无法弄清楚如何缩小/混淆全局函数名称.使用YUI时,如果它们被外部调用,它不会缩小全局变量.在高级模式下关闭,似乎它可以重命名全局变量,但是我遇到了死代码删除的问题.大多数函数似乎都已死,因为它们依赖于DOM交互和事件处理,并且不会直接调用.

那么关于如何缩小这些全局变量的任何想法?我是否需要编写脚本来进行一些正则表达式替换?如果能更好地适应缩小模式(例如,添加到闭包或诸如此类的东西),我也愿意重构我的代码

javascript obfuscation yui minify google-closure-compiler

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

bash脚本中的嵌套反引号无法正常工作

我在bash脚本中尝试以下内容:

COUNT=`cat "$NEWLIST" | wc -l | awk \' { print $1 } \` `
Run Code Online (Sandbox Code Playgroud)

其中NEWLIST是一个包含文件列表的字符串,每行一个.但我得到这个错误:

command substitution: line 74: unexpected EOF while looking for matching `''
Run Code Online (Sandbox Code Playgroud)

为什么会失败?如何使用嵌套反引号?

(基本上我是想从wc的结果中删除空格,但我也想知道如何使用嵌套的反引号)

bash backticks word-count

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

如何从可序列化的 JavaScript 对象递归修剪字符串值?

我有一个可序列化的 JavaScript 对象,例如

{
  a: 'hello ',
  b: [],
  c: 5,
  d: {
    e: '  world ';
  },
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个类似于原始对象的 JavaScript 对象,只是每个字符串值都删除了前导和尾随空格:

{
  a: 'hello',
  b: [],
  c: 5,
  d: {
    e: 'world';
  },
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript

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

getElementById无法在<embed>的Google Chrome扩展程序中使用

在我的Google Chrome扩展程序内容脚本中,我有以下内容:

jQuery(document).ready(function() {
    var player = document.getElementById('player');
    console.log(player);
    console.log(document);
});
Run Code Online (Sandbox Code Playgroud)

我正在任何Hulu视频上运行它,其中嵌入了id ='player'

<embed id="player" type="application/x-shockwave-flash" src="/site-player/playerwrapper.swf?cb=e80c477cL" width="100%" height="428" style="z-index:10;" name="player" quality="high" allowscriptaccess="always" allowfullscreen="true" bgcolor="#000000" flashvars="bitrate=700000&amp;user_id=-1&amp;startLoadWrapperTime=1299572732904&amp;overrideBrand=&amp;referrer=http://www.hulu.com/watch/20338/saturday-night-live-steve-carell-monologue#continuous_play=on&amp;continuous_play_on=true&amp;sortBy=&amp;initMode=4&amp;modes=4&amp;content_id=7751491&amp;cb=2011-3-8-8&amp;v=3">
Run Code Online (Sandbox Code Playgroud)

例如,以下链接http://www.hulu.com/watch/20337/saturday-night-live-snl-digital-short-the-japanese-office

但是当脚本运行时,console.log(播放器)返回null.但是,console.log(document)返回正确的文档对象.即使我尝试var player = Document.prototype.getElementById.apply(document, ['player']); 我仍然得到null.

有趣的是,如果我从Chrome JavaScript控制台尝试它,它工作正常,我得到适当的<embed>打印到控制台.

任何想法为什么这不适用于我的内容脚本?

更新:根据要求,以下是我的chrome扩展文件夹的完整内容:

manifest.json的:

{
    "name": "gebidtest",
    "version": "1",
    "permissions": [
      "http://*/*",
      "https://*/*"
    ],
    "content_scripts": [{
      "matches": ["http://*/*"],
      "js": ["jquery-1.5.1.min.js","app.js"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

app.js:

jQuery(document).ready( function() {
    var player = document.getElementById('player');
    console.log(player);
    console.log(document);
});
Run Code Online (Sandbox Code Playgroud)

jquery-1.5.1.min.js:我刚刚下载了它

我在Chrome version 10.0.648.127Mac上使用,但我也在具有相同结果的PC上尝试过

javascript embed flash getelementbyid google-chrome-extension

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