如何将Javascript作为字符串传递以从HTML起作用

时间:2018-06-22 13:10:09

标签: javascript html

我正在尝试使用函数复制一些Javascript代码。其中,它是由HTML代码触发的。

它不起作用,因为script标记中的双引号关闭了onclick属性。

        function copytext(data){
            var tempInput = document.createElement("input");
            tempInput.setAttribute('value',data);
            document.body.append(tempInput);
            tempInput.select();
            document.execCommand("copy");
            tempInput.remove();
        }
<button onclick="copytext('<script  src="https://code.jquery.com/jquery-3.3.1.min.js"></script>');" ></button>

4 个答案:

答案 0 :(得分:1)

行情未正确转义

function copytext(data){
            console.log(data);
            var tempInput = document.createElement("input");
            tempInput.setAttribute('value',data);
            document.body.append(tempInput);
            tempInput.select();
            document.execCommand("copy");
            tempInput.remove();
        }
 
<button onclick="copytext(`<script  src='https://code.jquery.com/jquery-3.3.1.min.js'></script>`);">

答案 1 :(得分:0)

您需要转义报价

<button onclick='copytext("<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>")'>Copy</button>

或在较新的浏览器中使用模板文字

<button onclick="copytext(`<script src='https://code.jquery.com/jquery-3.3.1.min.js'></script>`)">Copy</button>

答案 2 :(得分:0)

尝试

function copytext(data) {
  console.log(data);
  var tempInput = document.createElement("input");
  tempInput.setAttribute('value', data);
  document.body.append(tempInput);
  tempInput.select();
  document.execCommand("copy");
  tempInput.remove();
}
<button onclick="copytext(`<script src='https://code.jquery.com/jquery-3.3.1.min.js'></script>`);">aaaa</button>

答案 3 :(得分:-1)

以下是可能的,但尚未经过测试的解决方案

#< script id="scriptTagId" type=''... #>
document.scripts.namedItem("scriptTagId")