0

クリックするとスクリプトを実行するボタンを含む Web ページがあります。このスクリプトは、2 つのテキスト入力フィールドのコンテンツを送信し、属性が に設定された の を送信することinnerHTMLになっています。問題は、誰かがテキストを太字にしてから、いくつかの単語を入力した後に通常の書体に切り替えた場合、送信されたコンテンツには終了タグの前のすべてが含まれることです。呼び出されているスクリプトをエコーすることで、これを理解しました。すべてのコンテンツをスクリプトに渡すにはどうすればよいですか?<div>contenteditabletrue</b>$_POST

編集:私のHTMLは:

<p>Contents:</p><br/>
<div contenteditable="true" style="border-style:solid; border-width:1px; background-color:#FFFFFF" id="contents"><br/></div>
<button onclick="submit_form();">Submit</button>

そして私のJavascriptは:

function submit_form()
{
    var request = new XMLHttpRequest();
    request.open("POST", "/path/to/script.php", false);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.send("file=<?php echo $_GET['file']?>" + "&x=" + document.getElementById("x").value + "&y=" + document.getElementById("y").value + "&contents=" +  document.getElementById("results").innerHTML);
}
4

1 に答える 1

0

送信中にタグを削除するには、javascript 関数を呼び出すだけです。

function cleanText(str) {
    return String(str).replace(/\<[^\>]*>/g, '');
}

または、タグも渡す必要がある場合:

function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}
于 2013-02-19T16:41:04.830 に答える