将 HTML 复制到剪贴板
2020-05-31
435
我使用一个简单的第三方库将某些内容复制到剪贴板。
某些内容始终是一些编程代码。在这些示例中,它是 HTML 和 Python 代码。
<button id="copy-code-sample-3" data-code-sample-id="3" data-clipboard-text="<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title></title>
<link rel="stylesheet" href="stylesheets/style.css"></style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
</head>
<body>
</body>
</html>" class="code-sample-button">Copy (fail)</button>
<button id="copy-code-sample-1" data-code-sample-id="1" data-clipboard-text="from django import template
from code_sample.models import CodeSample
from django.utils.html import mark_safe
from general.const import CSS, SCRIPTS
register = template.Library()
class CodeSampleManager():
def __init__(self, code_sample_obj: CodeSample):
self.code_sample_obj = code_sample_obj
def prepare_code(self):
code = self.code_sample_obj.body
breakpoints = self.code_sample_obj.breakpoints
breakpoints = breakpoints.split(",")
breakpoints = [int(bp) for bp in breakpoints]
tmp = '<pre class="code">'
lines = code.split("\r\n")
counter = 1
for line in lines:
breakpoint = ""
if counter in breakpoints:
breakpoint = 'class="breakpoint"'
tmp += "<code {}>{}</code>\n".format(breakpoint, line)
counter += 1
tmp += "</pre>"
return tmp" class="code-sample-button">Copy (success)</button>
<script type="text/javascript" src="https://milankyncl.github.io/jquery-copy-to-clipboard/jquery.copy-to-clipboard.js"></script>
简而言之:按钮的 data-clipboard-text 属性中放置的任何内容都将被复制到剪贴板。
请按示例中的复制按钮,并将剪贴板中的内容插入文本编辑器中。
第三方库的文档: https://milankyncl.github.io/jquery-copy-to-clipboard/
https://jsfiddle.net/Nonverbis/nzx7dvm8/12/
复制(失败)按钮复制其数据剪贴板文本的内容,但其中仅包含空格字符和换行符。
此外,当我在本地主机上运行此程序时,单击失败按钮后出现此错误:
Refused to apply style from 'http://localhost:8000/draft/linux/install-os-ubuntu/stylesheets/style.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
原因似乎是 HTML 被视为真正的 HTML。浏览器查找源,失败并发送错误。但对于我的目的而言,这只是一个字符串。
您能帮助我了解为什么会发生这种情况并解决复制 HTML 文档的问题吗?
1个回答
错误
Refused to apply style from 'http://localhost:8000/draft/linux/install-os-ubuntu/stylesheets/style.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
是不言自明的,即
已从插件中启用严格 MIME 检查
,因此如果您删除
link
和
script
标签,那么它将起作用,因为安全问题
MIME
检查是很好的做法。
nmanikiran
2020-05-31