wysihtml5. Bild src-und href-stripped
Ich bin mit wysihtml5 wysiwyg-editor.
Das problem ist, dass Bild src-Attribut und link href-Attribut entfernt werden, die aus html. Auf dem server bin ich schon immer abgespeckte html.
Wie kann ich dieses problem beheben?
Ich bin mit advanced.js rulest. Mit allen Regeln.
UPDATE 1
Gut editor.getValue
und jquery().val() for textarea
geben gleiche Werte auf Formular Absenden. bedeutet, das Formular korrekt gesendet.
Aber ich ' V sah POST-Anforderung gesendet wird, aus dem browser. und es ist ohne URLs. Etwas falsch.
UPDATE 2
Wenn ich Sie entfernen aus Regelsatz alles verbunden mit img, trotzdem funktioniert inproperly.
UPDATE 3
In Reaktion auf Marrowmaw Kommentar.
Ich erwarte:
<a href="http://domain.com/" title="Link: http://domain.com">Link</a>
Aber ich bekomme
<a href="" title="Link: Null">Link</a>
UPDATE 4
<div id="wysihtml5-toolbar" style="display: none;">
<button class="btn" data-wysihtml5-command="bold">
{{ "Bold"|trans }}
</button>
<button class="btn" data-wysihtml5-command="italic">
{{ "Italic"|trans }}
</button>
<button class="btn" data-wysihtml5-command="createLink">
{{ "Link"|trans }}/{{ "Unlink"|trans }}
</button>
<button class="btn" data-wysihtml5-command="insertUnorderedList">
*
</button>
<button class="btn" data-wysihtml5-command="insertOrderedList">
1,2,3
</button>
<button class="btn" data-wysihtml5-command="formatBlock" data-wysihtml5-command-value="h1">
{{ "Heading"|trans }}
</button>
<button class="btn" data-wysihtml5-command="insertImage">
{{ "Image"|trans }}
</button>
<div data-wysihtml5-dialog="createLink" style="display: none;">
<label>
{{ "Link"|trans }}:
<input data-wysihtml5-dialog-field="href" value="http://">
</label>
<a data-wysihtml5-dialog-action="save">{{ "Save"|trans }}</a> <a data-wysihtml5-dialog-action="cancel">{{ "Cancel"|trans }}</a>
</div>
<!-- Dialog -->
<div data-wysihtml5-dialog="insertImage" style="display: none;">
<label>
URL: <input data-wysihtml5-dialog-field="src" value="http://">
</label>
<label>
Alternative text: <input data-wysihtml5-dialog-field="alt" value="">
</label>
<label>
{{ "Align"|trans }}:
<select data-wysihtml5-dialog-field="className">
<option value="">{{ "default"|trans }}</option>
<option value="wysiwyg-float-left">{{ "left"|trans }}</option>
<option value="wysiwyg-float-right">{{ "right"|trans }}</option>
</select>
</label>
<a data-wysihtml5-dialog-action="save">{{ "Save"|trans }}</a> <a data-wysihtml5-dialog-action="cancel">{{ "Cancel"|trans }}</a>
</div>
</div>
<form action="{{ path('###_save_homepage') }}" method="POST" >
<textarea id="wysihtml5-textarea" placeholder="{{ "Enter your text"|trans }}..." autofocus name="homepage" style="width:700px;height:400px;">
{{ homepage|raw }}
</textarea>
<input type="submit" value="{{ "Save"|trans }}" class="btn" />
</form>
- Und JS-init:
<script type="text/javascript">
jQuery(document).ready(function(){
var editor = new wysihtml5.Editor("wysihtml5-textarea", { //id of textarea element
toolbar: "wysihtml5-toolbar", //id of toolbar element
parserRules: wysihtml5ParserRules //defined in parser rules set
});
});
</script>
- i ' V aktualisierten post mit details
- Hat die html-get entfernt, bevor es versandt wird, an den server, oder wird es abgestreift irgendwo zwischen dem client und dem server? Wenn es letzteres ist, dann könnte man die Flucht der html-bevor Sie Sie senden, und unescape es am anderen Ende.
- Es scheint, dass irgendwo zwischen %)
- Fügen Sie, was würden Sie erwarten, dass Ihr
value
zu werden, als auch, was es tatsächlich gerade raus kommt. Dann können wir vielleicht eine gewisse Unterstützung bieten. Dies ist immer noch viel zu vage. - überprüfen Sie das update
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, einen Blick auf die wysihtml5-x.x.x.js die Datei, die Sie verweisen.
Beschlossen Sie, dass Sie nur von absoluten URLs (im Namen von Schutz gegen XSS). Der code unten im wesentlichen können Sie jeden beliebigen Wert annehmen, wenn Sie sind komfortabel mit, der trade-off.
Ctrl-F für "var attributeCheckMethods" und nehmen Sie die folgenden änderungen -- Quelle:
Den Weg der wysihtml5 überprüft markup ist explizit streng. Wenn Sie die URL oder SRC nicht überprüfen, wird es weggelassen werden.
Ich würde prüfen, die parser_rules/advanced.js Datei. Sie können Sie entfernen, ändern und Bearbeiten Sie die Regeln, die überprüfen jeden tag.