2017-01-04 3 views
0

내 wordpress 사이트에 base64 시스템이있어 링크를 암호화합니다. 모든 작품은 매력과 같지만 대상 링크에서이 링크를 열려고합니다.인코딩 된 base64 링크에 대상 공백 추가

이 코드는 내 링크를 암호화하고 암호 해독합니다.

나는 이것을하는 방법을 모른다. "대상 _blank를 추가하는 당신에게 어떤 생각을합니까?

링크를 내 게시물에

<span class="lc" data="<?php echo cl(get_field(lien)); ?>" onclick="test()"> link </span></div> 

내가 ACF 플러그인에 링크를 생성

JS

function btob(text) { 
    text = text.replace(/\s/g,""); if (!(/^[a-z0-9\+\/\s]+\={0,2}$/i.test(text)) || text.length % 4 > 0) { return text; } 
    var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/', cur, prev, digitNum, i=0, result = [], text = text.replace(/=/g, ""); 
    while (i < text.length){ 
     cur = digits.indexOf(text.charAt(i)); digitNum = i++ % 4; 
     switch (digitNum) { 
      case 1: result.push(String.fromCharCode(prev << 2 | cur >> 4)); break; 
      case 2: result.push(String.fromCharCode((prev & 0x0f) << 4 | cur >> 2)); break; 
      case 3: result.push(String.fromCharCode((prev & 3) << 6 | cur)); break; 
     } 
     prev = cur; 
    } 
    return result.join(''); 
} 

function transformText() { 
    var s = document.getElementsByTagName('span'); 
    for (i = 0; i < s.length; i++) 
     if ((s[i].className.indexOf('lc') != -1)) { 
      var lien = btob(s[i].getAttribute('data')).replace(/ajoutdunechainedecaractere/g,""); 
      var lnk = document.createElement('a'); 
      lnk.href = lien; 
      lnk.innerHTML = s[i].innerHTML; 
      s[i].innerHTML = ''; 
      s[i].appendChild(lnk); 

      if(s[i].hasAttribute("onclick")) { 
       //on récupère l'attribut onclick pour l'ajouter dans le lien 
       lnk.setAttribute('onclick', s[i].getAttribute('onclick')); 
      } 
     } 
    } 
    window.onload=transformText; 

기능 PHP

// crypt 
function cl($url) { 
    $taille = strlen($url); 
    $urlcode = ""; 

    for ($i = 0; $i < $taille; $i++) { 
     if ($i % 2) { 
      $urlcode.= "ajoutdunechainedecaractere" . $url{$i}; 
     } else { 
      $urlcode.= $url{$i}; 
     } 
    } 
    return base64_encode($urlcode); 
} 

답변

1

이 작업을 수행 할 수 있습니다

lnk.target = "_blank"; 

하지만 최종 URL이 무엇인지 모르겠습니다. 별도의 창에서 URL을 처리하는 것이 더 어려울 수 있습니다. 주요 어획량은 이며, <span>onclick 속성이있는 경우에 추가됩니다.

1

그냥 추가하십시오. target = "_ blank"를 html 요소에 추가합니다.

... 
lnk.href = lien; 
lnk.target = "_blank"; 
...