2014-11-18 2 views
0

У меня есть старый код, который я должен подправить, и, похоже, кто-то включил классический asp-код внутри .js-файла, чтобы визуализировать функцию javascript на основе некоторых значений переменной сеанса, но я получаю «синтаксическую ошибку» при рендеринге страницы, которую я пытаюсь решить. код выглядит следующим образом;классический asp код в .js файле

<% 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

Ошибка синтаксиса javascript, в отличие от классической ошибки синтаксиса сервера asp? Что выглядит визуализированный 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. В качестве внешнего файл JavaScript, что это бесполезно, но вы можете использовать его в качестве стороны сервера включает в странице .asp, т.е.

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

В этой ситуации расширение включаемого файла не имеет значения, как сервер будет относитесь к нему так, как будто это часть страницы, которую она оказывает. Однако считается хорошей практикой, чтобы также включить файлы include .asp.

0

Вы могли бы дать, что .js файл с расширением .asp, если вы хотите, и включить его, как это, чтобы избежать необходимости использования на стороне сервера включает в себя:

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

Это то, как правило, хорошая идея для первого строка этой страницы .asp должна быть следующей:

<%Response.ContentType="text/javascript"%> 
Смежные вопросы