相关疑难解决方法(0)

将所选文本复制到剪贴板而不使用闪存 - 必须是跨浏览器

我想要一个按钮来选择a中的文本textarea并将其复制到剪贴板.我似乎找不到任何适用于所有浏览器并且不使用闪存的解决方案.

当然这是可行的吗?我已经看到了它的所有地方,但我猜他们使用闪光灯,我真的想尽可能远离,因为有些人没有它.

这是我到目前为止 - 它只是选择文本:

function copyCode() {
  $("#output-code").focus();
  $("#output-code").select();
}
Run Code Online (Sandbox Code Playgroud)

(重点不是绝对必要的)

javascript clipboard jquery copy

53
推荐指数
4
解决办法
7万
查看次数

使用javascript复制到所有浏览器的剪贴板

我试图在所有浏览器上制作"复制到剪贴板",但没有运气.

我使用的是JavaScript,我不想使用Zero Clipboard来做.

请告诉我们我的代码中有什么问题.

感谢您的帮助.

下面是代码(目前我的代码仅适用于IE浏览器): -

<script type="text/javascript">
function copyToClipboard(s)
{
    if( window.clipboardData && clipboardData.setData )
    {
        clipboardData.setData("Text", s);
    }
    else
    {
        // You have to sign the code to enable this or allow the action in about:config by changing
        user_pref("signed.applets.codebase_principal_support", true);
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

        var clip = Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;

        // create a transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;

        // specify the data we wish to handle. Plaintext in this case.
        trans.addDataFlavor('text/unicode');

        // …
Run Code Online (Sandbox Code Playgroud)

javascript clipboard

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

如何将文本从div复制到剪贴板

以下是用户点击此按钮时的代码:

<button id="button1">Click to copy</button>
Run Code Online (Sandbox Code Playgroud)

如何复制此div中的文本?

<div id="div1">Text To Copy</div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

35
推荐指数
7
解决办法
7万
查看次数

使用Chrome中的jQuery/js复制到剪贴板

我知道这里有很多次问过这个问题,包括: 如何用JavaScript复制到剪贴板?或者如何使用jQuery将文本复制到客户端的剪贴板?,我缩小了范围:

条件:

  1. 在谷歌浏览器中工作正常(如果跨浏览器会很好,但不是必需的)
  2. 没有闪光灯

有这样的解决方案或解决方法吗?

javascript clipboard jquery google-chrome copy-paste

34
推荐指数
5
解决办法
5万
查看次数

如果在 android 上通过alert()处理,为什么`navigator.clipboard.writeText`不会将文本复制到剪贴板

当尝试在 Android 版 chrome 上复制一些文本时,navigator.clipboard.writeText()只要我之后不显示警报,它就可以工作。当我显示alert()时,它就不再起作用了。

例如,这按预期工作正常

function myFunction() {
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  navigator.clipboard.writeText(copyText.value);
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" value="Hello world" id="myInput" style="width:auto">
<button onclick="myFunction()">copy</button>
Run Code Online (Sandbox Code Playgroud)

然而这不起作用,它不会在控制台中抛出任何错误,并且在 PC 上的 Chrome 上运行良好,但不适用于 Android。

function myFunction() 
{
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  navigator.clipboard.writeText(copyText.value);
  alert("Successfully copied the text")
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" value="Hello world" id="myInput"  style="width:auto" >
<button onclick="myFunction()" >copy</button>
Run Code Online (Sandbox Code Playgroud)

任何人都知道发生了什么事?!谢谢

html javascript

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

将onclick事件添加到表行

我正在尝试通过Javascript向表行添加onclick事件.

function addRowHandlers() {
    var table = document.getElementById("tableId");
    var rows = table.getElementsByTagName("tr");
    for (i = 1; i < rows.length; i++) {
        row = table.rows[i];
        row.onclick = function(){
                          var cell = this.getElementsByTagName("td")[0];
                          var id = cell.innerHTML;
                          alert("id:" + id);
                      };
    }
}
Run Code Online (Sandbox Code Playgroud)

这在Firefox中可以正常工作,但在Internet Explorer(IE8)中,我无法访问表格单元格.我认为这在某种程度上与onclick函数中的"this"被识别为"Window"而不是"Table"(或类似的东西)这一事实有关.

如果我可以访问当前行,我可以在onclick函数中执行getElementById,因为我无法找到这样做的方法.有什么建议?

谢谢!

html javascript dom dom-events

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

Codeigniter会话用ajax调用

我的CodeIgniter应用程序使用会话库并将数据保存到数据库.

我遇到了一些问题,在某个ajax调用之后会创建空白会话.

经过调查,似乎有2个同时发生的函数调用需要进行会话验证.一个人会失败而另一个会没事的.

我能够通过不让它们同时发射来解决这个问题.但我仍然不明白原因为什么它会失败.是否与一次更新用户cookie和第二次呼叫失效有关?或者也许在阅读数据库时它会以某种方式死掉?

我稍微查看了Session核心类,但没有发现任何线索.

如果有任何人遇到同样的问题,我会感激任何关于如何调试或原因是什么的建议.

谢谢!

编辑:

我原本说有408状态回归.这是一个无关的案例.

这是并行触发MyVar.refresh()的函数:

function (event)
{
    var self$ = this.a$;
    var uid  = this.b$.val();
    var tid  = this.c$.val();
    var jqxhr = $.post('/controller1/index',{'uid':uid,'tid':tid,'action':true},function(re)
    {
        if(re.message != 'success')
        {
            MyVar.alert('<span class="msg_error sprite"></span>' + re.error);
            MyVar.refresh();
        } 

    },'json');
    MyVar.refresh();
    return stopDefault(event);
};
Run Code Online (Sandbox Code Playgroud)

可能的解决方案:

发现这个:http://codeigniter.com/forums/viewthread/102456/

显然它与ajax不能很好地配合.一种解决方案是,如果是ajax调用,则禁止会话更新; 唯一的问题是我们的网站大多是用ajax构建的..

另外,只是将sess_time_to_update降低到非常频繁的状态,并且ajax做得很好.还做了浏览器刷新,它没有超时.不确定为什么会话ID在ajax调用时已经更改,并且浏览器cookie从未更新过.

cookies ajax session jquery codeigniter

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

Javascript - 将字符串作为text/html复制到剪贴板

有没有办法在javascript中将html字符串(即<b>xx<b>)复制到剪贴板中作为text/html,以便可以将其粘贴到例如带格式的gmail邮件中(即xx以粗体显示)

存在以文本(文本/纯文本)形式复制到剪贴板的解决方案,例如/sf/answers/2156722571/,但不是text/html

我需要一个非闪存,非jquery解决方案,至少可以在IE11 FF42和Chrome上运行.

理想情况下,我想在剪贴板中存储字符串的text和html版本,以便可以粘贴正确的版本,具体取决于目标是否支持html.

javascript clipboard

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

将HTML画布作为图像复制到剪贴板

我有一个Web应用程序,我正在为一个使用图形库的客户端管理,该图形库使用画布生成图形.客户希望用户能够复制站点中的任何图形,以便将其粘贴到word文档中.具体问题:

是否可以将HTML画布元素作为图像复制到剪贴板?

我知道可以将画布保存为图像,但它比复制/粘贴更麻烦.

编辑: 我已经了解到您可以将画布转换为具有数据URI src的图像,但该图像上的复制和粘贴支持是混合的.Firefox允许您从浏览器中复制并粘贴这些图像,但Chrome不允许.

截至目前,似乎没有一种可靠的方法来复制和粘贴canvas元素.

javascript html5 canvas

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

将图像复制到剪贴板

我有一个图像作为DataURL字符串.
我想以编程方式将此图像复制到ClipBoard.

我找到了两个函数,但它们都不起作用.虽然,复制文本时第一个功能很有效 - 复制("Hello!","text");

PS我有一个"clipboardWrite"权限.

第一:

function copy(str, mimetype) {
    document.oncopy = function(event) {
        event.clipboardData.setData(mimetype, str);
        event.preventDefault();
    };
    document.execCommand("Copy", false, null);
}
Run Code Online (Sandbox Code Playgroud)

第二:

function copyImage(url){
    var img=document.createElement('img');
    img.src=url;
    document.body.appendChild(img);
    var r = document.createRange();
    r.setStartBefore(img);
    r.setEndAfter(img);
    r.selectNode(img);
    var sel = window.getSelection();
    sel.addRange(r);
    document.execCommand('Copy');
}
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension

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