2013-08-26 2 views
0

코드를 편집했습니다. 아래 코드가 업데이트되었습니다.이 코드는 키워드 메타 태그를 가져올 수 없으므로 작동하지 않습니다.JavaScript의 문자열 연결

된 설명 :나는 최종 URL을 얻을 수있는 문자열을 concatinate 노력하고 있어요,하지만 난 태그 변수의 becuase 그렇게 할 수 없습니다입니다. 페이지의 키워드 메타 태그를 가져 와서 finalUrl을 추가해야합니다. 어떤 도움이 필요합니까?

<script type="text/javascript"> 


    var tags=$('meta[name=keywords]').attr("content"); 
    var gameurl = "http://xyz/abc/details/"; 
    var jsn = ".json?callback=showGameDetail"; 
    var finalUrl= gameurl.concat(tags).concat(jsn); 


function loadJSON(url) { 
    var headID = document.getElementsByTagName("head")[0]; 
    var newScript = document.createElement('script'); 
     newScript.type = 'text/javascript'; 
     newScript.src = url; 
    headID.appendChild(newScript); 
} 

function showGameDetail(feed){ 
    var title = feed.title; 



    var game_url = feed.pscomurl; 
    var packart_url = feed.Packart; 
    $("#bnr-ads-box").html("<img src='"+"http://abc.com/"+packart_url+"'>"); 




} 

loadJSON(finalUrl); 
</script> 
<div id="bnr-ads-box"></div> 
+1

사용을 포함하는 것을 잊었다 A [플러스] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/String_Operators) :'var finalUrl = gameurl + tags + jsn;'- 문자열 연결을 사용하여 MDN을 얻기에 매우 적합합니다. – mplungjan

+0

jquery 스크립트의 출력을 평가하려고한다면 그것을 인용 부호 안에 넣으면 안됩니다.직접 오른쪽'var tags = $ ('meta [name = keywords]'). attr ("content");' –

+0

여기에 태그가 없다고 확신합니다. 나중에 제대로 사용하기 위해 올바른 값을 얻었는지 항상 디버그하십시오. – Akki619

답변

1
<!DOCTYPE html> 
<html> 
    <head> 
     <meta id="metaK" name="keywords" content="customizable software for QuickBooks, QuickBooks-integrated, Method customization, CRM accounting, Method for QuickBooks, Method CRM, Method blog, Salesforce automation, Method online platform, QuickBooks customization, web-based platform, industry-specific, customer portal, Method Field Services, Method Manufacturing, ERP" /> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
    </head> 
<body> 

<p id="demo">Click the button to join two strings into one new string.</p> 

<button onclick="myFunction()">Try it</button> 

<script> 
function myFunction() 
{ 
var tags=$('meta[name=keywords]').attr("content"); 

var gameurl = "http://xyz/abc/names/"; 
var jsn = ".json?callback=showGameDetail"; 
var finalUrl= gameurl.concat(tags).concat(jsn); 

document.getElementById("demo").innerHTML=finalUrl; 
} 
</script> 

</body> 

</html> 
+0

** var tags = $ ('meta [name = keywords]'). attr ("content"); ** 태그의 값이 단순하면 작동합니다. var tags = "name_of_page " –

+0

@VarunLuthra 내 코드가 변경되었습니다. 시도 해봐. –

+0

내 문자열 "tags"에 다음 출력을 얻고 있다고 가정 해 봅시다. Keyword1, Keyword2, Keyword3, keyword4 키워드를 사용하여 finalUrl에서 URL을 만드는 방법, Keyword1을 사용해야합니다. –

1

변경이

var tags="$('meta[name=keywords]').attr("content");";

var tags=$('meta[name=keywords]').attr("content"); 

또한이 코드 var finalUrl = gameurl + tags + jsn;

0

교류 사용 tually CONCAT 연 방법은 (적어도 크롬에) 너무 문자열에 작동하지만 권장되는 방법은 사용하는 plus concatenation string operator

당신은 그러나 몇 가지 물건

누락
  1. jQuery 라이브러리 - 나는 당신이 원하는 가정 당신은 $이 있기 때문에 (...)의 예에서 키워드에서 문자열의
  2. 인코딩 - 나는 키워드

가능한 줄 바꿈과 따옴표를 처리 할 수 ​​encodeURIComponent를 사용합니다. 당신이 필요로하는 무엇

<!DOCTYPE html> 
<html> 
<head> 
    <title>Create a URL from keywords</title> 
    <meta name="keywords" content="These are tags" /> 
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
    <script> 
    function myFunction() { 
     var tags = $('meta[name=keywords]').attr("content"); 
     var URL ="http://xyz/abc/names/" + 
     encodeURIComponent(tags) + 
     ".json?callback=showGameDetail"; 
     window.console && console.log(URL); 
     $("#demo").html(URL);  
    } 
    </script> 
    <body> 
    <p id="demo">Click the button to join two strings into one new string.</p> 
    <button onclick="myFunction()">Try it</button> 
    </body> 
</html> 
+0

문제는 문자열 이스케이프의 개념을 잘못 사용하고 있다는 것입니다. 나는 적어도 이미 배울 목적으로이 답변을 (내가 이미 한 것처럼) 덮어 두었을 것입니다. – Christian

+0

여기 누군가가 downvoting 야단법석에 있습니까? 왜 이것을 코멘트없이 줄였습니까? – mplungjan

1

은과 같이, 태그 변수 안에 따옴표를 탈출하는 것입니다 :

var tags="$('meta[name=keywords]').attr(\"content\");"; 

크리스 '솔루션도 괜찮지 만, 어떤 경우에 당신은 두 세트가 필요합니다 문자열 안에서 큰 따옴표를 사용하면 올바르게 이스케이프 처리해야합니다.

는 참고 :

var mystring = 'on 
a different line'; // <- this causes a syntax error 
:
이스케이프 그렇지 않으면이 같은 문자열에 줄 바꿈을 가질 수 없습니다 자바 스크립트 예를 들어, 문제가 발생할 것이다 문자열에서 발생하기 특수 문자를 가진 과정입니다

그래서 하나는 다음을 수행하게

var mystring = 'on\na different line'; 
+0

encodeURIComponent를 사용하여 내 응답보기 – mplungjan

+0

실제로 @mplungjan은 광산보다 많은 것을 다루었지만 설명이 부족합니다. :) – Christian

+0

댓글을 달았을 때 업데이트되었습니다. – mplungjan

1

힘든 논쟁의 여지가, 당신은 join()를 호출하여 연결될 수있는 배열을 사용할 수 있습니다

,536를
var tags = $('meta[name=keywords]').attr("content"); 
var data = [ 
"http://xyz/abc/names/", 
encodeURIComponent(tags), 
".json?callback=showGameDetail" 
].join(''); 
$("#demo").html(data); 
+0

Euuw. 배열을 사용하려면 적어도 문자열을 밀어 넣으십시오. – mplungjan

+1

이것은 한 줄에 모든 것을 넣는 것보다 매우 우아한 해결책입니다. 다양하고 우아한 방법은 적절하게 명명 된 변수에 다른 문자열을 넣는 것입니다 :'var url = "http : // xyz/abc/names /", query = ".json? callback = showGameDetail"; 이 특별한 예에서 + 이상의 우아함을 보지 못합니다. 불필요한 [] .join ("")을 추가합니다. – Christian

+0

) 직접 초기화 할 수 있습니다. 게다가 주요 목표가 문자열을 생성하는 것이라면 push()를 사용하는 것은 과도 할 것입니다. – mplungjan

1

당신은 JQuery와

<!DOCTYPE html> 
<html> 
<head> 
<meta name="keywords" content="hello"/> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
function myFunction() 
{ 
alert("Hello World!"); 
var tags=$('meta[name=keywords]').attr("content"); 

var gameurl = "http://xyz/abc/names/"; 
var jsn = ".json?callback=showGameDetail"; 
var finalUrl= gameurl.concat(tags).concat(jsn); 
alert(finalUrl); 
} 
</script> 
</head> 

<body> 
<button onclick="myFunction()">Try it</button> 
</body> 
</html> 
+0

내가 이미 지적한대로 ... T – mplungjan