[최경민]님이 남기신 글:
>답변은 잘 보았습니다. 그런데 역시 안되는군요.
>
><script>
>function autolink( id )
>{
>var container = document.getElementById(id);
>var doc = container.innerHTML;
>var regSRC = new RegExp("(src|href)=(\'|\")(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377();|가-힣]+)","gi");
>var regURL = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377();|가-힣]+)","gi");
>var regEmail = new RegExp("([_a-z0-9]+[_a-z0-9+-]+@[a-z0-9+-]+\.[a-z0-9+-]+[\.a-z0-9+-]+)","gi");
>doc = doc.replace(regSRC,"$1=$2donelink://$4");
>doc = doc.replace(regURL,"<a href='$1://$2' target='_blank'>$1://$2</a>");
>doc = doc.replace(regEmail,"<a href='mailto:$1'>$1</a>");
>container.innerHTML = doc.replace( /donelink/gi, 'http' );
>}
></script>
><div id='test'>
><embed src="http://www.sogang.ac.kr/~u010933/temp/rain.wma">
></div>
><script>autolink('test');</script>
><embed src="http://www.sogang.ac.kr/~u010933/temp/rain.wma">
========================================
자바스크립트의 autolink() 의 용도를 헷갈리고 있는것 같군요.
상위의 자바스크립트는 단순히 태그 없는 URL 주소를 A 태그로
자동으로 링크를 걸어두는 함수에 불과합니다.
ex)
-- 원문 --------------------
궁시렁 URL 은
http://hostname/some/path/file.txt 입니다.
----------------------------------
이것을
-- 결과 --------------------
궁시렁 URL 은
<A HREF=http://hostname/some/path/file.txt target=_blank>...</A> 입니다.
----------------------------------
이렇게 자동으로 링크를 걸어주는 용도입니다.
따라서 embed 와 같은 태그와는 전혀 어울리지 않고
질문한 내용과 같이 에러를 냅니다.
아마 autolink() 를 사용하면,
<EMBED src="<a" target="_blank" herf=...>...</A>
이와 비슷하게 됩니다.
결론은 위의 autolink()를 사용하면 안된다는 의미겠죠...
간단하게 위의 자바스크립트 함수의 마지막부분에서
container.innerHTML = doc.replace( /donelink/gi, 'http' );
alert(container.innerHTML);
이렇게 디버깅해 보세요... 확실히 이해가 갈겁니다.
문제는
doc = doc.replace(regURL,"<a href='$1://$2' target='_blank'>$1://$2</a>");
이 부분이고, 그 앞의 regSRC 에서 SRC 속성 정의를
좀더 명확하게 해야하는 패치기 필요합니다.
원저작자에게 문의해서 패치하는 것이 좋겠네요. |