2026/2/19 15:28:15
网站建设
项目流程
wordpress 下载模板站,机关门户网站建设,python网站开发入门,中山网站seo超文本剪切板格式
剪切板传输超文本文本的要求因方案而异.这里涉及剪切和粘贴超文本文档的片段.可能需要剪切板传输整个超文本文档;
但是,这里由传输所选超文本的文本片段的要求驱动.因此,把整个超文本文档复制进剪切板的方法太麻烦了.
CF_HTML剪切板格式允许在剪切板上按美…超文本剪切板格式剪切板传输超文本文本的要求因方案而异.这里涉及剪切和粘贴超文本文档的片段.可能需要剪切板传输整个超文本文档;但是,这里由传输所选超文本的文本片段的要求驱动.因此,把整个超文本文档复制进剪切板的方法太麻烦了.CF_HTML剪切板格式允许在剪切板上按美标保存原始超文本文本及其环境(即外部超文本)的片段.允许应用检查超文本片段的环境(由前面所有周围的标记组成),这样可用其属性来记录超文本片段的周围标记.尽管应用决定如何解释此类片段,但此处提供了一些基于IE4/MSHTML实现的基本指南.剪切板的官方名(RegisterClipboardFormat使用的串)是HTMLFormat.描述CF_HTML是总是使用UTF-8编码的文本剪切板格式.注意,此处的UTF-8的使用是窗口接口使用UTF-16来表示文本串的一般规则(尤其是可本地化的)串的例外.可用伪BackusNaur形式描述CF_HTML剪切板的普通布局或语法,如下:注意此语法不规范cfhtml::descriptionheadercontextcontext::[precedingcontext]fragment[trailingcontext]descriptionheader::Version:versionbr(headeroffsetkeyword:headeroffsetvaluebr)*headeroffsetkeyword::StartHTML|EndHTML|StartFragment|EndFragment|StartSelection|EndSelectionheaderoffsetvalue::{Base10(decimal)integer string with optional _multiple_ leading zerodigits(seeOffset syntaxbelow)}version::0.9|1.0fragment::fragmentstartcommentfragmenttextfragmentendcommentfragmentstartcomment::!-StartFragment --fragmentendcomment::!-EndFragment --precedingcontext::{Arbitrary HTML}trailingcontext::{Arbitrary HTML}fragmenttext::{Arbitrary HTML}br::\r|\n|\r\n说明头和偏移说明头包括剪切板的版本号和偏移,指示环境和片段的开始和结束的位置.说明是美标文本关键字的列表后接串,并用冒号(:)分隔.1,版本:剪切板的vv版本号.开始版本Version:0.9.从窗口1020H2开始,现在Version:1.0.2,StartHTML:从剪切板开头到环境开头的偏移(按字节),如果没有环境,则为-1.3,EndHTML:从剪切板开头到环境尾的偏移(按字节),如果没有环境,则为-1.4,StartFragment:从剪切板开头到片段开头的偏移(按字节).5,EndFragment:从剪切板开头到片段尾的偏移(按字节).6,StartSelection:可选.从剪切板的开头到选区的开头的偏移(按字节).7,EndSelection:可选.从剪切板的开头到选区尾的偏移(按字节).StartSelection和EndSelection关键字是可选的,如果不希望应用生成此信息,则必须省略这两个关键字.CF_HTML剪切板格式的未来修改可能会扩展头,如,因为超文本从StartHTML偏移处开始,因此以后可添加多个StartFragment和EndFragment对以支持不连续的片段选择.偏移语法为了方便助手生成字节偏移,偏移值可选择多个零位0的左填充.原因是助手找到的偏移的超文本可能会为每个关键字(如StartHTML:0000000000),将十个(10)零写入其输出缓冲.稍后,当知道确切的StartHTML偏移(如,71),助手可在缓冲中使用71覆盖最右边的零(如,变成StartHTML:0000000071).剪切板支持的唯一符集是Unicode(UTF-8).因为UTF-8和美标的第一个符匹配,说明总是为美标,但环境(从StartHTML开始)的字节可用UTF-8中编码的任何其他符.剪切板格式头(上br)中的行尾可由CRLF(窗口),LF(Unix)或单个CR(原型)表示.片段,选区及其环境元素说明头需要对开始和结束符位置使用有效的超文本环境StartHTML和EndHTML是片段StartFragment和EndFragment是选择StartSelection和EndSelection否环境环境是一个有效的,完整的超文本文档,虽然这不表示包含用户选择的整个原始源超文本,会逐字执行文档;相反,可以是一个最小的,但格式正确的超文本文档.此环境包含片段和前面的所有周围标记(开始和结束标记;这些前面的周围标记表示片段的所有父节点,直到超文本节点).上例文章包含一个完整的HTML的,允许使用base href和title元素的head元素.如,可插入此元素以取此附加信息.应用在剪切板中复制超文本片段,可选择创建一个base href元素,以把它包含在环境中(如果此类元素尚不存在).这样,就可解析超文本片段中的非绝对URI.环境是可选的,因为片段中包含足够的信息,这样可粘贴超文本片段.如果未存储环境,则仅存储片段和StartHTMLEndHTML-1.片段片段(上fragmenttext)包含效的超文本片段.有效的超文本片段由单个外部超文本元素组成.此元素可能包含子超文本元素,只要它们正确嵌套.如,片段可是包含3个p元素的单个div元素.包含三个p元素的span元素组成的片段无效,因为span元素不能按子元素包含块级元素.因此,片段有效地表示了屏幕上更大的区域,用户在其中选择文本(如复制).选区包含所选文本及在所选文本中有结束标记的任何元素的开始标记和属性,及包含的任何开始标记的片段尾的结束标记.这是基本粘贴超文本片段要求的所有信息.片段前面,加超文本注释!--StartFragment--和!--EndFragment--,以指示片段的开始和结束位置;这些超文本注释必须逐字,每个注释自身中没有空格符.因此,由这些注释的存在和StartFragment和EndFragment头表示片段的开始和结尾.工具应生成此信息.该冗余是故意的,引入后可找到片段的开头(从字节计数),并直接标记片段在超文本树中的位置.选择选择是可选的,因为片段中包含足够的信息来基本粘贴.如果未存储选区,则不会在头中保存StartSelection和EndSelection.如果存在,则选择是用户选择的确切文本范围(在片段中);这将通过指示确切的选中文本,而不是格式正确的开始和结束标记和结束标记及结束标记来向片段添加更多信息.记住,选择可表示可在任何给定元素中开始,并在后续元素或上级元素中结束的动态文本.因此,不能用超文本来表示选择文本.场景如下描述了IE4/MSHTML的超文本编辑器如何处理超文本的剪切和粘贴;方案仅显示良好的超文本,即没有覆盖的标记.方案1,超文本的简单片段假设以下超文本文本:bodyThis is normal.bThis is bold./bibThis is bold italic./bThis is italic./i/body当用户在基于MSHTML的应用(MSHTML是IE的引擎)上加载上述超文本文本时,MSHTML将如下处理复制超文本子串:1,用户从上例中选择不带任何前导或尾空格的文本,如粗体,这是粗体.2,要在剪切板复制文本,用户点击复制命令按钮.MSHTML会如下将此超文本文本放入窗口剪切板中:Version:1.0StartHTML:0121EndHTML:0272StartFragment:0006EndFragment:0106StartSelection:0180EndSelection:0225html!-StartFragment--bodyThis is normal.bThis is bold./bibThis is bold italic./bThis is italic./i/body!-EndFragment--/html方案2,HTML中表的片段假设以下超文本文本:BODYTABLE BORDERTRTH ROWSPAN2Head1/THTDItem1/TDTDItem2/TDTDItem3/TDTDItem4/TD/TRTRTDItem5/TDTDItem6/TDTDItem7/TDTDItem8/TD/TRTRTHHead2/THTDItem9/TDTDItem10/TDTDItem11/TDTDItem12/TD/TR/TABLE/BODY如下:头1|项目1|项目2|项目3|项目4头1|项目5|项目6|项目7|项目8头2|项目9|项目10|项目11|项目12MSHTML如何处理从表复制超文本子串当用户用鼠标选择表格单元格时,项6,Item7,Item10及Item11.然后,此选择将复制进剪切板.以下是剪切板上的内容(注意这是IE4/MSHTML的解释).为此,添加了换行符.!DOCTYPEHTMLBODYTABLE BORDER!-StartFragment--**TRTDItem6/TDTDItem7/TD/TRTRTDItem10/TDTDItem11/TD/TR**!-EndFragment--/TABLE/BODY/HTML以StartSelection和EndSelection分隔选区,以粗体显示.方案3,将有序列表的片段粘贴到纯文本ol假设以下超文本文本:BODYOL TYPEaLIItem1LIItem2LIItem3LIItem4LIItem5LIItem6/OL/BODY如下:1,项目12,项目23,项目34,项目45,项目56,项目6MSHTML如何处理复制超文本编号列表项的子串用户从第3项开始,到第4项,到第5项的尾选择文本.用户调用复制命令.以下超文本在剪切板(为了清晰添加了换行符)!--Start/EndFragment--注释的精确位置,根据用户如何处理其浏览器的选择文本逻辑:htmlbodyol!--StartFragment--liItem3/liliItem4/liliItem5/li!--EndFragment--/ol/body/html如果此片段现在粘贴到空文档中,将创建以下超文本:bodyolliItem3/liliItem4/liliItem5/li/ol/body如下:1,项目32,项目43,项目5方案5,粘贴部分选中的区域假设以下超文本文本:pIE4/MSHTML是个支持WYSIWYG的编辑器:/pulliCutliCopyliPaste/ulpThis is a Great Tool!/pMSHTML如何处理复制超文本列表项的子串用户拖放鼠标选择文本,如与它是纯文本一样,“支持:剪切Cop的WYSIWYG编辑器”,该选择将类似此坏的的超文本片段:WYSIWYG Editor,which supports:/pulliCut/liliCop当用户按下复制命令按钮时,其剪切板将如下(为此,添加了换行符;粗体文本表示用户实际选择的内容):htmlbody!--StartFragment--pWYSIWYG Editor,which supports/pul|liCut/li|liCop/li/ul!--EndFragment--/body/html注意:1,删除了WYSIWYG前的文本.2,已删除列表项(liPaste/li),因为用户选择中没有任何列表项.3,已删除复制中的y.