特定のテキストエリア(リンクを貼り付ける場所)のbind()イベントで$.post
、プレビュー付きのajaxコールバックを実行することを共有するリンクを作成しています(youtubeまたはvimeoリンクの場合)。基本的に、リンクが検出されてプレビューが取得されるたびに、リンクをテキストエリアに削除します。
これはコールバックを行う関数です:
$('#writer').bind('change keypress keyup keydown',function() {
var value_= $('#writer').val();
$('#thumb-temp').hide();
$.post( 'checklink.php?', { string : value_ },
function(response) {
$('.writer').prepend(response);
$('#thumb-temp').show();
}).fail(function() { alert( "error" ) })
});
リンクを削除するページchecklink.php
<?
$link = $_POST['string'];
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
preg_match($reg_exUrl, $link, $url);
$link = $url[0];
?>
<script>clearTextarea('<? echo $link ?>')</script>
そして最後に clearTextarea() 関数
function clearTextarea(url) {
var _textarea = $('#writer');
var _curVal = _textarea.val();
var _curUrl = url;
var _regex = new RegExp( _curUrl , 'g' );
var _newVal = _curVal.replace( _regex , '' );
_textarea.val( _newVal );
}
さて、明らかに、これは機能するはずですが、何も起こりません。何かアイデアはありますか? どこが間違っているのかわかりません:(