I believe you have been bitten by the "order matters" nature of <%%> and
<script> delimiters.
http://www.aspfaq.com/2045
You could try enclosing the inline code with <script> instead of <% or you
could use <% in the .inc file and use a standard <!--#include instead of the
script-tag style.
A
On 3/16/05 9:49 PM, in article
,
"Jonathan Dodds" <NO_REPLY> wrote:
> I have two files in an ASP project I created with VI 6.0: circle.inc and
> default.asp.
>
> circle.inc:
>
> // circle.inc
>
> function Circle (xPoint, yPoint, radius) {
> this.x = xPoint; // The x component of the center of the circle.
> this.y = yPoint; // The y component of the center of the circle.
> this.r = radius; // The radius of the circle.
> }
> Circle.prototype.pi = Math.PI;
> Circle.prototype.area = function () {
> return this.pi * this.r * this.r;
> }
>
>
>
> default.asp:
>
> <%@ language="jscript" %>
> <html>
> <head>
> <script language="javascript" runat="server" src="circle.inc"></script>
> </head>
> <body>
> <%
> var aCircle = new Circle(5, 11, 99);
> for (var x in aCircle)
> {
> Response.Write(x + " = " + aCircle[x] + " (" + typeof(aCircle[x]) +
> ")<br>");
> }
> %>
> </body>
> </html>
>
>
>
> I expect output that look like this:
>
> area = function () { return this.pi * this.r * this.r; } (function)
> pi = 3.141592653589793 (number)
> x = 5 (number)
> y = 11 (number)
> r = 99 (number)
>
> This works when the circle constructor and prototype are in the default.asp
> file but when I move the code to the circle.inc include file I lose the
> members that are added by the prototype. i.e.:
>
> x = 5 (number)
> y = 11 (number)
> r = 99 (number)
>
> When I use the include file it finds the constructor but loses the
> prototype? What the heck!?
>
> I tried using a #include directive instead of the script element. It made no
> difference. I searched the MSDN to see if there was some mention of this
> issue. I didn't find anything relevant.
>
> Is this a bug or am I including this file incorrectly?
>
> Thanks.
>
>