我的页面上有一个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?
我正在编写一个Google Chrome扩展程序,可在每个页面上运行内容脚本.在我的内容脚本中,我在页面中注入了<div>一些<ul>和<li>子项.我在样式表中为这些元素指定了几种样式.
但我发现在一些随机页面上我的元素将继承网页上定义的样式,因为我没有为我的div指定每个样式属性.
什么是我可以阻止我注入的元素继承这些样式的最佳方法?
在我看来,我可以:
<div>内心<iframe>.但是,我必须在我的内容脚本的iframe和源页面之间传递hella消息,因为chrome://我的iframe src 的URL 和源页面的URL http://将被视为跨源.-o-ellipsis-lastline谷歌浏览器有什么类似的东西吗?
我正在构建Chrome扩展程序,并希望使用CSS来删除多行文本.
如何使用ECMAScript 国际化 API获取所有长月份名称的列表?
例如,如果用户的语言环境是en-US,我想得到以下信息:
["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
Run Code Online (Sandbox Code Playgroud) 我想针对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来使示例可读.
我有一些代码具有以下格式:
function myfunc1 () { ... jquery.bind('click', myfunc2) ... }
function myfunc2 () { ... }
...
Run Code Online (Sandbox Code Playgroud)
是的,功能是全局的,但是因为我在谷歌浏览器扩展内容脚本中编写,所以它是沙箱.
现在,我正在尝试缩小和混淆代码.我已经尝试过YUI Compressor和Google Closure编译器.问题是,我无法弄清楚如何缩小/混淆全局函数名称.使用YUI时,如果它们被外部调用,它不会缩小全局变量.在高级模式下关闭,似乎它可以重命名全局变量,但是我遇到了死代码删除的问题.大多数函数似乎都已死,因为它们依赖于DOM交互和事件处理,并且不会直接调用.
那么关于如何缩小这些全局变量的任何想法?我是否需要编写脚本来进行一些正则表达式替换?如果能更好地适应缩小模式(例如,添加到闭包或诸如此类的东西),我也愿意重构我的代码
我在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的结果中删除空格,但我也想知道如何使用嵌套的反引号)
我有一个可序列化的 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)
我怎样才能做到这一点?
在我的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&user_id=-1&startLoadWrapperTime=1299572732904&overrideBrand=&referrer=http://www.hulu.com/watch/20338/saturday-night-live-steve-carell-monologue#continuous_play=on&continuous_play_on=true&sortBy=&initMode=4&modes=4&content_id=7751491&cb=2011-3-8-8&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
javascript ×6
css ×2
angular-ui ×1
angularjs ×1
backticks ×1
bash ×1
ellipsis ×1
embed ×1
flash ×1
html ×1
iframe ×1
localization ×1
minify ×1
obfuscation ×1
regex ×1
word-count ×1
yui ×1