相关疑难解决方法(0)

cmd + s和ctrl + s的jquery按键事件

使用前一个问题中的一个示例,我有:

$(window).keypress(function(event) {
    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
    $("form input[name=save]").click();
    event.preventDefault();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

是否也可以将其更改为适用于Mac cmd键?

我试过(!(event.which == 115 && (event.cmdKey || event.ctrlKey)) && !(event.which == 19))但这没用.

html javascript css macos jquery

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

处理浏览器的'ctrl + s'按键事件


我正在尝试为基于浏览器的应用程序实现CTRL+ S功能.我进行了搜索并在下面遇到了两个问题的脚本

使用JQuery捕获CTRL + S的最佳跨浏览器方法?
在Chrome中按Ctrl + S preventDefault

但是,当我尝试实现它时,它工作但是,我仍然得到默认的浏览器保存对话框/窗口.

我的代码:For shortcut.js

 shortcut.add("Ctrl+S",function() {
     alert("Hi there!");
 },
 {
     'type':'keydown',
     'propagate':false,
     'target':document
});
Run Code Online (Sandbox Code Playgroud)

jquery hotkeys.js

$(document).bind('keydown', 'ctrl+s', function(e) {
    e.preventDefault();
    alert('Ctrl+S');
    return false;
});
Run Code Online (Sandbox Code Playgroud)

我相信e.preventDefault();应该做的伎俩,但由于某种原因它不起作用.我在哪里出错.如果它很简单,仍然学习javascript.
感谢您的时间.

javascript jquery event-handling javascript-events

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

Javascript截获"Ctrl + O"不会打开我的文件对话框

<input type="file" id="browse-button"/>我的HTML中有一个文件浏览器输入.

我有另一个带ID的按钮choose-file-button,当点击时,会打电话document.getElementById("browse-button").click();.单击此按钮时,它会正确单击#browse-button并打开文件对话框.

现在,我从这个答案中获取代码来拦截一个Ctrl+O按键并打开我的文件对话框,所以我有这个:

$(window).bind('keydown', function(e)
{
    if (e.ctrlKey || e.metaKey)
    {
        switch (String.fromCharCode(e.which).toLowerCase())
        {
            case 's':
                e.preventDefault();
                // doesn't matter for this question
                return false;
            case 'o':
                e.preventDefault();
                document.getElementById("choose-file-button").click();
                return false;
        }
    }
    return true;
});
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,当我拦截时,Ctrl+O我点击我的#choose-file-button按钮,它document.getElementById("browse-button");在其onclick处理程序中调用.我在这个点击处理程序中放了一个断点,当我按下Ctrl+O它时会到达这个断点.但是,文件对话框永远不会显示.

通过调试,我发现如果我放alert(...);#choose-file-button click()一行,那么警报会出现,显示正常页面"打开文件"对话框(不是我的文件对话框).但是,如果我没有此警报,则根本不显示任何内容.

这是一个错误吗?如何修复它并通过截获显示我的文件对话框Ctrl+O

编辑:我刚刚在Chrome中测试过,效果很好.但是,它仍然无法在Firefox中运行.

html javascript jquery dialog

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

在Ctrl + V上捕获文本的任何其他替代方法

我试图在Ctrl+ V事件上捕获文本,如下所示..

  1. 在页面中创建textarea并设置高度0px和宽度0px.如下

      <textarea id="a" style="height:0px;width:0px"></textarea>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 按下V键我将焦点设置为该textarea,然后使用Ctrl + V按钮.如下

     shortcut.add("X",function() {
      $('#a').focus();
     });
     // In between user have to press Ctrl+V to paste the content
     shortcut.add("V",function() {
      alert($('#a').val());
     });
    
    Run Code Online (Sandbox Code Playgroud)

我认为这是一种效率最低的方法,并等待有价值的建议来改善这一点.

javascript jquery

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

通过 JavaScript 跟踪 Ctrl + F 的使用情况?

是否可以通过JavaScript 中的Ctrl+了解我的用户在我的网页上搜索的内容F?因此,当用户使用Ctrl+F进行搜索时,JavaScript 可以捕获此操作(和搜索短语)并将其发送回服务器。

可能的?如何?

javascript browser analytics

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

监听 iframe 中的鼠标单击和按键事件

我想为嵌入式swipe.to演示文稿的每张幻灯片添加一些解释。因此,我试图计算按下 iframe 中的按钮或完成某些按键的次数。目标是确定用户在哪张幻灯片上,以便显示适当的幻灯片说明。

如果用户单击带有 id 的链接#next或按空格键或右箭头,则整数应该增加。如果用户单击带有 id 的链接#previous或按左箭头,则整数应该减少。

关于鼠标点击事件这个答案对我帮助很大。它就像一个魅力。然而,我仍然很难让按键事件正常工作。

这就是我所得到的:

嵌入代码

<figure class="swipe">
   <iframe src="https://www.swipe.to/embed/0882x" allowfullscreen></iframe>
</figure>
<style>figure.swipe{display:block;position:relative;padding-bottom:56.25%;height:0;overflow:hidden;}figure.swipe iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}</style>
Run Code Online (Sandbox Code Playgroud)

确定幻灯片计数的代码

<script>
        $('body iframe').load(function(){
            var i = 0;
            $('body iframe').contents().find('#next').bind('click',function(e) {
                    i++;
                    alert(i);
            });

            $('body iframe').contents().bind('keypress',function(e) {
                    if(e.keyCode == 32){
                        i++;
                        alert(i);
                    }
            });

            $('body iframe').contents().bind('keypress',function(e) {
                    if(e.keyCode == 39){
                        i++;
                        alert(i);
                    }
            });

            $('body iframe').contents().find('#previous').bind('click',function(e) {
                    i--;
                    alert(i);
            });

            $('body iframe').contents().bind('keypress',function(e) {
                    if(e.keyCode == 37){
                        i--;
                        alert(i);
                    }
            });


        });
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript iframe jquery

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