Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript仅在IE11兼容模式下工作_Javascript_Html - Fatal编程技术网

JavaScript仅在IE11兼容模式下工作

JavaScript仅在IE11兼容模式下工作,javascript,html,Javascript,Html,我自学了HTML和CSS代码,但我仍然发现JavaScript很难理解,现在我的问题来了。我为一个小的支持小组工作,创建了一个独立的网页,其中有几个其他独立网页的链接。我们经常需要在系统中使用相同的命令,因此我制作了一个网页,使用以下代码将文本复制到剪贴板: <html> <head> <title>Electrical Application Support</title> <link rel="st

我自学了HTML和CSS代码,但我仍然发现JavaScript很难理解,现在我的问题来了。我为一个小的支持小组工作,创建了一个独立的网页,其中有几个其他独立网页的链接。我们经常需要在系统中使用相同的命令,因此我制作了一个网页,使用以下代码将文本复制到剪贴板:

<html>
    <head>
        <title>Electrical Application Support</title>
        <link rel="stylesheet" type="text/css" href="CSS/elec-styles.CSS'>
    <style>
        html,body,h1,h2,h3,h4,h5,h6 {font-family: "Roboto", sans-serif}
    </style>
    </head>

    <body>
        <h1 class="w3-text-teal w3-center">Password Reset</h1>
        <button onClick="ClipBoard(copytext);">Copy</button><span ID="copytext">text 1</span><br>
        <button onClick="ClipBoard(copytext1);">Copy</button><span ID="copytext1">text 2</span><br>
        <button onClick="ClipBoard(copytext2);">Copy</button><span ID="copytext2">text 3</span><br>
        <button onClick="ClipBoard(copytext3);">Copy</button><span ID="copytext3">text 4</span><b>(make sure the account is theirs)</b><br>
        <button onClick="ClipBoard(copytext4);">Copy</button><span ID="copytext4">text 5</span><br><br>
        <b>If they have a disuser flag then use this:</b><br><br>
        <button onClick="ClipBoard(copytext5);">Copy</button><span ID="copytext5">text 6</span> 
        <textarea ID="holdtext" STYLE="display:none;"></textarea>

        <script language="JavaScript">
        function ClipBoard(ct) {
        holdtext.innerText = ct.innerText;
        Copied = holdtext.createTextRange();
        Copied.execCommand("Copy");
        }
        </script>
    </body>
</html>
与:


你好,我是一些短信

复制文本区


但是我没有足够的知识来调整它,以便与网页上的几个不同文本一起使用(最多需要14个命令),而且我还可以将textarea切换到什么?使用了
&
,并且该函数在更改后不起作用。

对于相对简单的东西,这看起来像是相当迂回的代码

如上所述,js是区分大小写的,但这只是一个问题。您还调用了不存在的函数(代码中也不存在)。我需要更正,但我不知道有一个名为createTextRange()的标准函数

在第一个代码块中没有定义任何变量。您应该声明变量,然后使用getElementById查找适当的元素。您可以进一步声明以获取innerHTML/innerText等属性

下面是我提出的替代代码(我删除了显示:none;)

document.getElementById(“复制”).addEventListener(“单击”,剪贴板,错误);
函数剪贴板(){
var ct=document.getElementById(“ct”);
var ctxt=ct.innerText;
var hold=document.getElementById(“holdtext”);
hold.innerText=ctxt;
};
#ct{
字体:斜体;
}
复制
设置def sys$系统测试99



不要把一切都变成资本。HTML就是这样insensitive@SagarV-不,不是。如果您有某些doctypes,HTML验证器是区分大小写的,但我认为在这里,情况并非如此。而验证,我认为是针对XHTML的standards@MadMiddle:为了与浏览器兼容,您需要使用
document.getElementById(“holdtext”).innerText…
只有(一些?)IE在页面
var ct=document.getElementById(“copytext”)、holdtext=document.getElementById上使用ID和名称重载窗口对象(“保留文本”)谢谢Rachel,我的最终目标是简单地将预先确定的文本添加到剪贴板。但是我必须扩展代码以运行多达14个不同的文本。然后我建议您将ID放入类中并使用getElementsByClassName。应该很容易适应。如果您同时复制所有文本,您可以添加一个循环。而且您不需要不需要代码位。请将鼠标悬停在答案旁边并单击复选标记以接受我的答案。我有14条命令(文本行)我想用自己的“复制”按钮单独复制到剪贴板,这是可能的吗?是的,但将ID更改为类名,以便在CSS中哈希为点,然后在函数中使用GetElementsByCassName而不是getElementById
var copyTextareaBtn = document.querySelector('.js-textareacopybtn');

copyTextareaBtn.addEventListener('click', function(event) {
  var copyTextarea = document.querySelector('.js-copytextarea');
  copyTextarea.select();

  try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
  } catch (err) {
    console.log('Oops, unable to copy');
  }
});
<p>
<textarea class="js-copytextarea">Hello I'm some text</textarea>
</p>

<p>
<button class="js-textareacopybtn">Copy Textarea</button>
</p>