2014-04-09 5 views
-1

자바 스크립트를 사용하여 HTML 링크를 생성하려하고 있습니다.링크 생성기 자바 스크립트

다음은 코드입니다.

<script type="text/javascript"> 
    function lab() {  
      var myTextField = document.getElementById('redir'); 
      var texto = myTextField.value; 
      url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
      document.getElementById("red").innerHTML = url; 
</script>  

<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Web: <input type="text" id ="redir" name="redir"><br> 
<input type="button" onClick="lab()" value="Generate code" > 

<b id="red" >Link</b> 

문제는 내가 잘 생성 된 링크 나던 작업을 클릭하면 바로 로컬 호스트에 데려다/그리고 난 밖으로 가고 싶어 ....

+0

감사합니다, 나는 이미 UPDAT! (0; – bjesua

+3

코드를 단계별로 실행하여 'myTextField.value'가 무엇인지 확인하십시오. 값이 비어 있으면 링크에 결함이 있습니다 .. – Bucket

답변

1

1 onsubmit 사용하고 반환 3) 유일한 유형을 사용 = redir가 뭔가 같아야한다고 주장하는 경우 URL을 http://aaa.bbb.ccc

사용자가 google.com을 입력 할 수있게하려면 type="url"을 사용하지 않아야하지만 http : //가 앞에 있는지 테스트해야합니다. 그렇지 않은 경우 추가해야합니다. 그렇지 않은 경우 추가해야합니다. 그렇지 않으면 해당 URL을 기반으로 상대 URL로 이동합니다. 형태와 페이지

Live Demo

<script> 
window.onload=function() { 
    document.getElementById("test").onsubmit=function() { 
    var texto = this.redir.value; 
    if (texto) { 
     // next line only needed for non-html5 aware browsers or type="text" 
     if (texto.indexOf('http://')!=0) texto = 'http://'+texto; 
     document.getElementById("red").innerHTML = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
    } 
    return false; 
    } 
} 
</script>  

<form id="test"> 
Web: <input type="url" id="redir" name="redir"/><br /> 
<input type="submit" value="Generate code"/> 
</form> 
<b id="red" >Link</b> 
+0

그래, 고마워!,이 코드는 완벽하게 작동하지만, 문제는 링크가 나를 데리고 나가는 것이 아니라 http : // localhost /test/linkeout/crypt/goog.com localhost! ... 그래서 내가 필요로하는 것은이 링크가 나를 웹 사이트로 데려갔습니다!, 고마워요! – bjesua

+0

내 업데이트보기 ... – mplungjan

+0

정말 고마워요! .. 생각조차하지 않았어! 천재 야! 고마워! ... – bjesua

0

변화 <input type="text" id ="redir" name="redir"><input type="url" id ="redir" name="redir">에 그래서입니다 ... 브라우저는 URL 만 제출하도록합니다.

function lab() {  
     var myTextField = document.getElementById('redir'); 
     var texto = myTextField.value; 
     url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
     document.getElementById("red").innerHTML = url; 
    } 


에 :
그런 다음 수정 거짓
2) 필드가 비어 있지 테스트)

function lab() {  
    var myTextField = document.getElementById('redir'); 
    var texto = myTextField.value; 
    if(texto != '') 
    { 
     url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
     document.getElementById("red").innerHTML = url; 
    } else { 
     alert(' please enter a valid url'); 
    } 
} 
+0

유형 = url은 HTML5를 인식 할 때만 자체적으로 아무 것도하지 않습니다. 브라우저 – mplungjan

+0

그래, 고마워!,하지만, 문제는 링크가 나를 데려 가지 않는다는 것, 내게 http : //localhost/test/linkeout/crypt/goog.com 같은 것을 보여 주겠다! 이 링크는 나를 웹 사이트로 데려다 줄 필요가 있습니다!, 고마워요! – bjesua