2014-11-18 3 views
0

나는 손질해야 할 오래된 코드가 있는데, 일부 세션 변수 값을 기반으로 자바 스크립트 기능을 렌더링하기 위해 .js 파일 내에 고전적인 asp 코드가 포함 된 것으로 보입니다. 하지만 난 '구문 오류'페이지를 렌더링 할 때 나타납니다, 내가 해결하려고합니다. 코드는 다음과 같습니다..js 파일의 클래식 ASP 코드

<% if Session("Money_Guide_Pro_Application_Granted") = "Y" then %> 
function OpenMGP() 
{ 
    var oNewWindow = "MGP"; 
    window.open("https://" + "<%=Request.ServerVariables("SERVER_NAME")%>" + "/applications/commlink/MGPRO/MGProRepSelect.aspx",oNewWindow,"height=600,width=667,status=no,toolbar=no,scrollbars=yes,menubar=yes,resizable=yes,location=no"); 
} 
<% else %> 
function OpenMGP() 
{ 
    var oNewWindow = "MGP"; 
    window.open("https://" + "<%=Request.ServerVariables("SERVER_NAME")%>" + "/backoffice/Planning/MGPNoSub.asp", oNewWindow,"height=400,width=500,status=no,toolbar=no,scrollbars=yes,menubar=yes,resizable=yes,location=no"); 
} 
<% end if %> 

기본적으로 설정된 사용자 권한에 따라 창을 열 때 다른 URL을 사용합니다. 나는 고전 asp가 서버 측이고 모든 .js가 클라이언트 측이기 때문에 이것이 가능하지 않다고 생각했다. 그래서 클라이언트가이 .js 파일을 치면 서버 측 코드를 파싱 할 수 없을 것이라고 생각했다. 어떤 도움을 주시면 감사하겠습니다.

+0

고전적인 ASP 서버 구문 오류와 달리 javascript 구문 오류가 있습니까? 렌더링 된 JS는 브라우저에서 어떤 모습입니까? –

+0

SCRIPT1002 : 구문 오류이며 문자 1에서 발생합니다. <% if Session ("Money_Guide_Pro_Application_Granted") = "Y"then %> .js 또는 ASP인지 확실하지 않습니다. 단지 .js의 <% 태그 때문이라고 생각합니다. 파일? –

+1

.JS 파일이 ASP 처리기로 전달되지 않는다고 생각합니다. X.JS 파일의 이름을 X.JS.ASP로 변경하여 확인하십시오 (브라우저가 확장 프로그램에 대해 카드로 표시하지 않음) –

답변

3

.js 파일은 클라이언트 측 JS로 모두 작성해야합니다. < %> 내부의 내용은 서버 측 VBScript입니다. 서버 윌,이 상황에서 즉

<script type="text/javascript"> 
<!--#include file ="yourfilename.js"--> 
</script> 

하는 .ASP 페이지에서 중요하지 않습니다 포함 파일의 확장자를 외부 자바 스크립트로는 쓸모 파일,하지만 당신은 서버 사이드로 사용할 수 포함 렌더링하는 페이지의 일부로 취급하십시오. 그러나 include 파일에 .asp 확장명을 지정하는 것도 좋은 방법입니다.

0

당신이 당신이 좋아하는 경우 .ASP 확장 파일 된 .js주고, 서버 측을 사용하는 것을 방지하기 위해 다음과 같이 그것을 포함 할 수는 포함 :

<script src="../Include/YourFileName.asp?x=1&y=2" type="text/javascript"></script> 

그것은 일반적으로 다음 첫 번째에 대한 좋은 생각이다 이 .asp 페이지의 줄은 다음과 같습니다.

<%Response.ContentType="text/javascript"%>