ASP Classic — включить страницу VBScript на страницу JavaScript?

Есть ли способ включить страницу VBScript в страницу ASP, написанную с использованием Javascript?

Существует ASP-страница, написанная на Javascript, но наше боковое меню написано на VBScript. Когда я включаю asp-файл боковой панели в Javascript, сервер выдает ошибку.

‹ %@ LANGUAGE="JavaScript" %>

<%

...

‹ !--#include file="sidebar.asp"-->

...

где sidebar.asp написан с использованием VBScript.


person Justin    schedule 01.12.2009    source источник


Ответы (2)


Вы можете попробовать это, но я предполагаю, что sidebar.asp будет выполнен перед вашим кодом Javascript.

< %@ LANGUAGE="JavaScript" %>

<%

...
<script language="VBscript" runat=server> 
< !--#include file="sidebar.asp"-->
</script> 
...
person Eric V.    schedule 01.12.2009
comment
Это не сработало для меня. Первая ошибка, которую я получил, заключалась в том, что мне пришлось использовать атрибут src тега script. Когда я поместил sidebar.asp в качестве источника, я получил ошибки в содержимом ASP (‹% ). - person Justin; 02.12.2009

Я делаю это все время, но пишу свои страницы ASP/JScript немного по-другому. Вместо того, чтобы переключать язык страницы на «JavaScript», я оставляю его по умолчанию «VBScript», а затем использую блок <SCRIPT LANGUAGE="JavaScript" RUNAT="Server"> для своего кода JScript. Блоки JavaScript SCRIPT выполняются перед обычными тегами <% %>, поэтому я выполняю всю обработку страницы в блоках SCRIPT, а затем просто вставляю результаты на страницу с тегами <% %>. Вот пример:

главная страница.asp:

<SCRIPT LANGUAGE="JavaScript" RUNAT="Server">
var name;
var address;
var phone;
function main() {
    var rec = go_to_database();
    name = rec.first_name + " " + rec.last_name;
    address = rec.address;
    phone = rec.phone;
}
</SCRIPT><% main() %>
<html><head><title><%= name %></title></head><body>
<p>Name: <%= name %><br/>
Address: <%= address %><br/>
Phone Number: <%= phone %></p>
<!--#include file="subpage.asp"-->
</body></html>

подстраница.asp:

<p>Blah blah blah, some random VBScript code: <%
    Dim whatever
    whatever = some_silly_thing()
    Response.Write(whatever)
%>.</p>

Итак, сначала IIS обрабатывает SSI и включает subpage.asp в mainpage.asp. Затем он оценивает блок JScript SCRIPT, объявляя переменные name, address и phone и определяя функцию main.

Затем он оценивает каждый тег <% %> по порядку. <% main() %> вызывает функцию main и устанавливает значения для name, address и phone. Затем <%= name %>, <%= address %> и <%= phone %> заменяют эти значения на странице. Наконец, оценивается код <% %> из subpage.asp, и значение Response.Write оказывается в выводе страницы.

Хотя вся страница не написана на JScript, большая часть кода может находиться внутри блока SCRIPT. Это сработает для вас?

person smammy    schedule 06.01.2012