我有一系列数字,我需要确保它们是唯一的.我在互联网上找到了下面的代码片段,它的工作情况很好,直到数组中的数字为零.我发现这个其他脚本在SO上看起来几乎就像它,但它不会失败.
所以为了帮助我学习,有人可以帮我确定原型脚本出错的地方吗?
Array.prototype.getUnique = function() {
var o = {}, a = [], i, e;
for (i = 0; e = this[i]; i++) {o[e] = 1};
for (e in o) {a.push (e)};
return a;
}
Run Code Online (Sandbox Code Playgroud)
我试过看看这是否可行,但我找不到答案.
我正在努力让以下工作:
var defaults = {
'background-color': '#000',
color: '#fff',
weekdays: {['sun','mon','tue','wed','thu','fri','sat']}
};
Run Code Online (Sandbox Code Playgroud)
它只是给出了一个错误,我尝试过使用({...})
,[{...}]
我希望能够使用以下内容访问工作日:
defaults.weekdays[0];
Run Code Online (Sandbox Code Playgroud)
这可能吗?
有没有一种简单的方法可以使用github的Pygments为我的各种插件的gh页面添加语法高亮?
我知道每个页面都运行Jekyll引擎并提供语法高亮(ref).但我不想安装博客.我只想将语法高亮应用于我的gh页面中的代码块.
我想我总是可以在我的gh页面中加入一个不同的插件......
我已经创建了一个jQuery UI Modal表单,我希望该表单能够触发回发,但是我很难让它运行起来.
我知道有很多基于使用SimpleModal插件的文章,我试图改编这些并覆盖_doPostback函数,但没有任何乐趣.
我认为问题在于我的__doPostBack函数调用以及参数应该是什么.是这样的吗?
这是我的表格
<form id="summaryForm" runat="server">
<div id="dialog" title="Quick Booking">
<p>Select user from list or enter name in box</p>
<fieldset>
<p><label>Is machine going out of the office?</label></p>
<asp:RadioButton TextAlign="Left" GroupName="outOfOffice" Text="Yes" ID="optYes" class="radio" runat="server" />
<asp:RadioButton TextAlign="Left" GroupName="outOfOffice" Text="No" ID="optNo" class="radio" runat="server" Checked="true" />
<label for="dropLstUser">User:</label>
<asp:DropDownList ID="dropLstUser" runat="server" />
<input type="text" name="txtUser" id="txtUser" value="" class="text" />
<label for="txtStartDate">Start Date:</label>
<input type="text" id="txtStartDate" name="txtStartDate" class="datepicker" />
<asp:HiddenField ID="assetField" runat="server" />
<%--<button onclick="performPostBack('summaryForm')">Postback</button>--%>
</fieldset>
</div>
//--------------------------------
Run Code Online (Sandbox Code Playgroud)
这是JavaScript代码: …
我需要的,如果用户运行的是IE浏览器的旧版本(IE9是罚款)从一个jQuery插件检测,所以我不会有超过HTML控件.
我们不鼓励解析用户代理字符串并使用$.browser.msie
.该$.support
方法也未涵盖该问题.
所以,我发现这有效,但我不确定它是否是"良好做法".
$('body').append('<!--[if lte IE 8]><script>$("body").addClass("oldie");</script><![endif]-->');
var old_ie = $('body').is('.oldie');
Run Code Online (Sandbox Code Playgroud)
你会使用这种方法还是坚持解析用户代理字符串(我需要弄清楚它是否是IE并得到版本号)?
我有一个数据表,我需要动态添加一列.让我说我有这个基本的表开始:
<table>
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr>
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr>
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我想在每一行的单元格1和单元格2之间插入一个列...我已经尝试了这个但是它没有像我期望的那样工作......
$(document).ready(function(){
$('table').find('tr').each(function(){
$(this).prepend('<td>cell 1a</td>');
})
})
Run Code Online (Sandbox Code Playgroud) 我刚刚找到了qHint,一种将jsHint测试集成到Qunit中的方法......但它在本地不起作用(我不是指localhost),除了在Firefox中.
所以我想添加一个"警告"或"通知",而不是测试失败,显示测试被跳过:
// do unit test if not local or local and running Firefox
t = QUnit.isLocal;
if (!t || (t && /Firefox/.test(navigator.userAgent))) {
jsHintTest('JSHint core check', 'js/myplugin.js');
} else {
test('JSHint core check (skipped)', function(){
ok( true, 'check not done locally' );
});
}
Run Code Online (Sandbox Code Playgroud)
我想更明显地跳过测试,这可能吗?
更新:感谢Odi的回答!,但我必须稍作修改才能使代码在QUnit v1.11.0pre中运行:
QUnit.testSkip = function( testName, callback ) {
QUnit.test(testName + ' (SKIPPED)', function() {
if (typeof callback === "function") {
callback();
}
var li = document.getElementById(QUnit.config.current.id);
QUnit.done(function() {
li.style.background = '#FFFF99'; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试附加虚拟键盘以绑定到Google地方自动填充输入.
如果我在输入中实际输入一个字母,则Google支持的下拉列表会根据地图的居中位置显示自动填充预测.如果单击虚拟键盘键,则输入会正确更新,但不会更新自动完成预测.
我曾尝试使用虚拟键盘change
回调触发"KEYUP"(计算器的结果),"按键","的keydown","变",我甚至想这(演示):
change : function(e, keyboard, el) {
google.maps.event.trigger(autocomplete, 'place_changed');
}
Run Code Online (Sandbox Code Playgroud)
这导致javascript错误基本上显示autocomplete.getPlace();
不返回结果.
所以现在我已经尝试了下面的代码(在这个演示中),它使用更改回调来触发自动完成预测,但正如您在该演示中所看到的,结果不同.
change : function(e, keyboard, el) {
var $el = $(el),
service = new google.maps.places.AutocompleteService();
if ($el.val() !== "") {
service.getQueryPredictions({ input: $(el).val() }, function(predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
var list = '', $results = $('#results');
for (var i = 0, prediction; prediction = predictions[i]; i++) {
list += '<li>' + prediction.description + …
Run Code Online (Sandbox Code Playgroud) 为了在一个contenteditable元素中获取和设置插入位置,我尝试了这个答案中的代码,但是当你移动到不同的文本节点时,开始和结束位置会重置.
<div contenteditable>012345<br><br><br>9012345</div>
Run Code Online (Sandbox Code Playgroud)
所以,我修改了这个答案的代码(通过@TimDown),但它还没有完全正确地计算换行符...在这个演示中,当我点击4
并按下右箭头三次后,我会看到开始/结束报告5
,6
,然后8
.或者,使用鼠标从4
第一行中选择并继续向右选择(请参阅gif)
这是代码(演示 ;即使它看起来像,jQuery 没有被使用)
function getCaret(el) {
let start, end;
const range = document.getSelection().getRangeAt(0),
preSelectionRange = range.cloneRange(),
postSelectionRange = range.cloneRange();
preSelectionRange.selectNodeContents(el);
preSelectionRange.setEnd(range.startContainer, range.startOffset);
postSelectionRange.selectNodeContents(el);
postSelectionRange.setEnd(range.endContainer, range.endOffset);
start = preSelectionRange.toString().length;
end = start + range.toString().length;
// count <br>'s and adjust start & end
if (start > 0) {
var node,
i = el.children.length;
while (i--) {
node = …
Run Code Online (Sandbox Code Playgroud) 我的Chrome扩展程序没有使用,content_scripts
因为我不想将代码注入每个页面.相反,当用户点击按钮时,会打开一个弹出窗口并将代码注入页面.
所以,在manifest.json
一个权限块中:
"permissions": [
"activeTab"
]
Run Code Online (Sandbox Code Playgroud)
在popup.js
这里有代码:
chrome.windows.getCurrent( function(win) {
chrome.tabs.query({
'windowId': win.id,
'active': true
}, function(tabArray) {
// inject css & js only on initial click
chrome.tabs.executeScript( null, {
code : 'document.querySelector( "body" ).classList.contains( "_myExtension_code_injected" )'
}, function( result ) {
if ( result && !result[0] ) {
chrome.tabs.insertCSS( null, {
file: 'myExtension.css'
});
chrome.tabs.executeScript(null, {
file: 'myExtension.js'
}, function(){
chrome.tabs.executeScript(null, {
code: 'myExtension.init();'
});
});
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是一些网站打开一个包含附加信息的弹出窗口.并且该弹出页面的URL是"about:blank"
.如果我尝试初始化扩展,我在控制台中看到此消息: …
javascript ×5
jquery ×2
arrays ×1
asp.net ×1
caret ×1
ecmascript-6 ×1
github ×1
github-pages ×1
html-table ×1
jquery-ui ×1
jshint ×1
postback ×1
qunit ×1
unique ×1