Tag: javascript

使用Javascript列出已知的CSS类

我正在尝试找到一种很好的方法来收集给定文档中包含的样式表中定义的类的名称。 我知道document.StyleSheetList但它似乎并不容易解析。 我正在寻找的是类似于样式表文档,例如: .my_class { background: #fff000; } .second_class { color: #000000; } 我可以提取像[“my_class”, “second_class”]这样的数组。 这显然假设了满载的dom和样式表的有利场景。 我一直在寻找一个好的方法来做这样的事情到目前为止,没有取得什么进展。 有没有人知道如何解决这个问题? 谢谢!

删除特定对象上的jQuery委托事件处理程序

我已使用单个选择器将委派的事件处理程序附加到页面上的许多元素。 当事件是针对单个元素触发的时候,我想基于某些条件逻辑关闭该元素的事件处理程序。 这意味着我不一定要在第一次点击时禁用该事件 。 但我无法弄清楚如何在不关闭所有这些的情况下做到这一点。 HTML: One Two Three JS: $(document).on(‘click’, ‘button’, function(ev) { // doesn’t work because argument needs to be a string $(document).off(‘click’, $(ev.target)); // doesn’t do what I want b/c turns off events on all buttons, not just this one $(document).off(‘click’, ‘button’); // doesn’t work because event is on document, not button […]

如何使用iframe或shadow dom创建跨浏览器子文档?

我想用JavaScript创建一个完全封装的子文档,它有自己的 , ,styles,html和js。 基本上是阴影dom或iframe,但没有src属性。 虽然我喜欢影子dom的想法,但它的支持率非常低,因此尚未准备好迎接黄金时段。 所以我一直致力于创建一个iframe,但一路上都遇到了各种各样的障碍。 这是一个jsFiddle,展示了我的各种尝试。 iframe不能存在于dom中。 这部分很关键。 为了澄清,如果它暂时存在于dom中是可以的,但它必须能够被提取并且仅存在于JS中。 $(‘body’).append(”); var iframe3 = $(‘#iframeGenerator’); var iframe3Contents = iframe3.contents(); $(‘#iframeGenerator’).remove(); var head = iframe3.contents().find(‘head’); 甜蜜,我们有头脑 console.log(head.length); 但内容是什么样的? console.log(iframe3Contents.get(0)); 它是一个文档,但不在元素内部,所以让我们尝试将它放在dom或另一个元素的内部? 以下两种尝试都不起作用,因为选择器没有上下文或其他东西…… $(‘body’).append(iframe3Contents); var generatedIframe = $(”).append(iframe3Contents); 我希望能够创建iframe / subdocuemnt而不向dom添加任何内容……但如果我必须,我仍然希望能够随后将其从dom中删除并在js中进一步管理它。 我有这个小function,它不起作用,但说明了我想要创建的iframe或子文档生成器的类型 var iframeHtml; giveMeIframe = function() { var iframeContents; if (iframeHtml) { return iframeHtml; } else { […]

使用jQuery突出显示Chrome等搜索词

我最近用jQuery和一个高亮插件做了一个非常简单的突出显示。 它看起来像这样: $(’myButton’)。click(function(){ $( ‘身体’)突出($( ‘#myInputText’)VAL()); }); 但是我想知道我怎么能像Chrome一样突出显示,我的意思是每当我在文本框中输入一些字母而不提交时突出显示这些字母。 我想也许可以使用一个keyup事件……任何想法? 谢谢Andy,我在你的代码中将’this [0]’更改为’search [i]’,如果只有一个’p’标签,它就有效 $(document).ready(function(){ var search = [‘p’, ‘div’, ‘span’]; $(“#highlighter”).bind(‘keyup’, function(e){ var pattern = $(this).val(); $.each(search, function(i){ var str = search[i]; var orgText = $(str).text(); orgText = orgText.replace(pattern, function($1){ return “” + $1 + “” }); $(str).html(orgText); }); }); });

未捕获的SyntaxError:Google Chrome中的意外令牌=

我有一个接受可选参数的javascript函数。 这在Firefox运行良好,但在Google Chrome显示: – Uncaught SyntaxError: Unexpected token = 我的代码, function errorNotification(text = “Something went wrong!”) { $.pnotify({ title: ‘Error’, text: text, type: ‘error’ }); } 我见过很多类似的问题,但我无法实现我的问题。

Angular JQuery Datepicker未在加载时设置MinDate

我在AngularJS项目的Date From和Date To字段中使用JQuery UI的Datepicker。 我添加了指令将值绑定到模型值,我还添加了一个OnSelect检查,为每个字段设置minDate和maxDate选项(因此Date To永远不会早于Date From)。 问题是,在加载页面时,实际上没有选择任何日期(即使模型有值),因此仍然可以选择比日期更早的To日期。 我添加了一个$ watch服务来至少纠正错误,但我仍然无法弄清楚如何在指令内或控制器内部设置minDate。 我也尝试过在Angular代码之外的$(document).ready,但这也不起作用。 在添加任何内容以设置minDate之前,这是我的代码。 在控制器内: $scope.messagesForm.dateFrom = moment().subtract(‘days’, 30).format(‘MM/DD/YYYY’); $scope.messagesForm.dateTo = moment().format(‘MM/DD/YYYY’); $scope.$watch(‘messagesForm.dateTo’, function(newVal, oldVal) { if (!newVal) return; if (Date.parse(newVal) < Date.parse($scope.messagesForm.dateFrom)) { $scope.messagesForm.dateFrom = newVal; } }); 指示: .directive(‘datepicker’, function() { return { restrict: ‘A’, require : ‘ngModel’, link : function (scope, element, attrs, ngModelCtrl) […]

Angular2和jQuery’改变’事件

我有一个隐藏的输入来控制jQuery所做的更改,其中包括一个angular2 change事件,就像这样 然后在我的情况下,我必须使用jQuery来更改此输入的值,然后触发change事件: $(‘#input1’).val(‘somevalue’).trigger(‘change’); 我通过jQuery触发的这个change事件只适用于jQuery,但不适用于Angular2: //This is working $(‘#input’).change(function(){ console.log(‘Change made’); }) 在angular2组件中: //This is not working onChange(): void{ console.log(‘Change made’); } 在这种情况下我该如何解决?

window.open()添加一个rel =“nofollow”属性

有没有办法在window.open() Javascript函数中添加一个rel=”nofollow”属性? 或者这是让谷歌不遵循Javascript或jQuery创建的链接的任何方式。 更新 此外,这将是客户端的产品,我将无法访问他们的文件。 对robot.txt或.htaccess任何更改都不在桌面上。

如何在本地(在机器上)保存JSON数据?

我使用以下链接创建一个类似结构的树: LINK 这是我的代码: Tree Context Menu – jQuery EasyUI Demo Tree Context Menu and Drag Drop Tree Nodes Right click on a node to display context menu. Press mouse down and drag a node to another position. Save Append Remove Expand Collapse function append(){ var t = $(‘#tt’); var node = t.tree(‘getSelected’); t.tree(‘append’, { parent: […]

鼠标hover时jquery连续动画

我试图只有当鼠标在一个对象上时才能运行动画。 我可以获得动画的一次迭代,然后在鼠标输出时将其恢复正常。 但我希望动画能够在鼠标hover时循环播放。 我怎么做,使用setInterval? 我有点卡住了。