HTML include StartFragment EndFragment [solved]
When I copy-past text from firefox to zotero notes it was embedded in tags StartFragment EndFragment .
It seems to only affect Zotero addons: I dont get these tags in a note created in the standalone, or in by pasting in online editor (quackit.com).
I solved it by setting the dom.event.clipboardevents.enabled to false (not sure if it's a good idea, but it works)
These useless tags did bother me for instance, when I created a note and past a text, I could not add something before the pasted text (I needed to delete the tag in the source code to add something else). And these tag were also adding useless data in the DB.
I just though it could be interesting for the Zotero team to know about this.
It seems to only affect Zotero addons: I dont get these tags in a note created in the standalone, or in by pasting in online editor (quackit.com).
I solved it by setting the dom.event.clipboardevents.enabled to false (not sure if it's a good idea, but it works)
These useless tags did bother me for instance, when I created a note and past a text, I could not add something before the pasted text (I needed to delete the tag in the source code to add something else). And these tag were also adding useless data in the DB.
I just though it could be interesting for the Zotero team to know about this.
Can you provide a Report ID and exact steps to reproduce, including the URL of the page you're copying from? We've never seen this before.By the way setting the dom.event.clipboardevents.enabled to false create some issue on Firefox with the copy past. I can't for instance copy/past anymore in/from a google doc.
<p><!--StartFragment--></p>
and terminated with
<p><!--EndFragment--></p>
This behavior is undesirable because it interferes with the formatting of my note, wherein the note preview, which is typically the first line of the note, does not show up. I have to fix it each time by opening the note, viewing the HTML, and then removing these lines from the beginning and the end of the note.
It is my understanding that these tags are part of the Windows HTML clipboard and that Zotero's integrated TinyMCE note editor strips them off through configuration of the paste plugin.
Steps to reproduce
1. Create a new standalone note in a fresh Zotero installation without any add-ons.
2. In the note editor, open "Source code".
3. Paste
<p><!--StartFragment-->abc<!--EndFragment--></p>
, then click ok.4. Move the text cursor in the note editor to the beginning of the line (before "a").
5. Click on the note in middle pane.
6. Press the "Tab" key twice. ("Tab" usually jumps into the note editor.)
7. Zotero crashes.
Report ID: 624695628
Debug Output Logging:
displayErrorMessage@chrome://zotero/content/zoteroPane.js:4777:18
onerror@chrome://zotero/content/standalone/standalone.xul:1:1
Error Console:
[JavaScript Error: "TypeError: e.hasAttribute is not a function"
{file: "resource://zotero/tinymce/tinymce.min.js" line: 2}]
showBlockCaretContainer@resource://zotero/tinymce/tinymce.min.js:2:223066
rl@resource://zotero/tinymce/tinymce.min.js:2:137876
ol@resource://zotero/tinymce/tinymce.min.js:2:139934
mceInsertContent@resource://zotero/tinymce/tinymce.min.js:2:185954
execCommand@resource://zotero/tinymce/tinymce.min.js:2:182677
execCommand@resource://zotero/tinymce/tinymce.min.js:2:336960
insertContent@resource://zotero/tinymce/tinymce.min.js:2:338821
i@resource://zotero/tinymce/plugins/nonbreaking/plugin.min.js:1:217
t/<@resource://zotero/tinymce/plugins/nonbreaking/plugin.min.js:1:746
dp/c.fire@resource://zotero/tinymce/tinymce.min.js:2:190050
fire@resource://zotero/tinymce/tinymce.min.js:2:190574
Rp@resource://zotero/tinymce/tinymce.min.js:2:192218
t@resource://zotero/tinymce/tinymce.min.js:2:192695
C@resource://zotero/tinymce/tinymce.min.js:2:10983
d@resource://zotero/tinymce/tinymce.min.js:2:11136
I can reproduce the issue that the note cannot be edited when the text cursor is at the beginning of a paragraph that is enclosed by
<!--StartFragment--><!--EndFragment-->
. Debug Output Logging shows "Note hasn't changed".It would be nice if a script for the "Run JavaScript" tool could be provided that safely strips
<!--StartFragment-->
and<!--EndFragment-->
tags from Zotero notes. Note that these tags need not appear in pairs, so two independent replacement rules seem appropriate. (It might be that the tags appeared in pairs originally, but further note editing led to broken pairs in my library.)<!--
and-->
seems irrelevant.A1. Paste
<p><!--a-->abc</p>
into the "Source code", click ok.A2. Paste text before "a".
A3.
TypeError: e.hasAttribute is not a function
B1. Paste
<p><!--a-->abc</p>
into the "Source code", click ok.B2. Put text cursor before "a" and press "Bold" button.
B3.
DOMException: Failed to execute 'insertNode'
It seems that
<p>abc<!--a--></p>
doesn't lead to issues:C1. Paste
<p>abc<!--a--></p>
into the "Source code", click ok.C2. Put text cursor before "a" or after "c" and paste text.
C3. No issues.
In Zotero, the issue seems to occur when the note's source code e.g. contains
<p>abc</p><p><!--a-->def</p>
, the text cursor is placed before "d", and thena) pressing the "Tab" key,
b) pressing a button like "Bold", or
c) pasting text.
Pressing a character from [0-9a-zA-Z] results in "Note hasn't changed" as noted above.
<!--a-->
should be valid comments according to the HTML specification here. I also checked that this passes the Nu Html Checker:<!DOCTYPE html>
<html lang="">
<head>
<title>Test</title>
</head>
<body>
<p><!--a-->abc</p>
</body>
</html>
So it seems to me that TinyMCE has an issue with handling HTML comments without throwing errors.