<xmp></xmp>
正式被弃用(但仍受主要浏览器支持),因此对于新应用程序来说,合法的唯一解决方法是替换xmp
标签(不解析HTML标签) )就像我发现的那样:<script type="text/plain">...</script>
。
使用此解决方案一切正常,但是Firefox(仅)阻止复制/粘贴<script type="text/plain"></script>
标记中包含的内容。
要求修复bugzilla可能需要10到15年的时间,与类似的Firefox问题一样,当一个can't copy content from disabled text/textarea elements(我在这里问)时,可能有人可以通过某种解决方法来允许复制/粘贴内容<script type="text/plain">...</script>
还是可能有更好的xmp
标签替换功能,以与当今的浏览器和规则兼容。
下面是示例,我如何使用<script type="text/plain">...</script>
<!doctype html>
<html lang="en">
<head>
<title>Attempt to emulate depricated XMP tag</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
script[type="text/plain"] {
display: block;
width: 100%;
white-space: pre;
box-sizing: border-box;
user-select:text !important;
}
</style>
</head>
<body>
<script type="text/plain" readonly>
Try to select then copy and paste me somewhere else ...
and you will fail...
WITH FireFox ONLY !!!
<p>raw HTML tag "p" here for example</p>
</script>
</body>
</html>
P.S。
为防止要约使用<pre>
或其他解决方案来修改原始内容(转换为HTML实体),我应该说-这对我不起作用,我必须在{{1 }}标签。
答案 0 :(得分:2)
好吧,我会回答我自己的问题:
I reported to mozilla this issue as a bug,它很快就被接受并解决了(非常感谢!!!)。所描述的问题已在Firefox中修复,并且其行为与所有其他从版本68开始的受支持的浏览器的行为相同,因此,现在可以使用<script>
标记代替<xmp>
标记。
答案 1 :(得分:0)
文本区域将显示原始HTML内容。与脚本解决方案不同,将其设置为只读将允许在Firefox中复制/粘贴内容。
有两个缺点:
您不能在原始代码中包含</textarea>
。
文本区域将需要手动设置其宽度和高度以适合内容。
.rawcode {
resize: none;
border: 0;
outline: 0;
background-color: #fff;
}
<textarea class="rawcode" readonly>
Try to select then copy and paste me somewhere else ...
and you should succeed.
<p>raw HTML tag "p" here for example</p>
</textarea>