试图在ASP页面上的VB脚本中编写页面标题

时间:2013-04-20 21:10:28

标签: asp-classic vbscript

嗨,我正在尝试做一些非常基本的事情而不使用Javascript。我希望我的页面徽标的图像alt字段包含页面的标题。我宁愿使用VB Script,以便将实际的HTML内容注入到用户端的html标记中。

我们目前在Javascript中执行以下操作

<script language=javascript type=text/javascript> var writelogo; writelogo = "<a href=http://www.mywebsite.com><img SRC=/logo.png alt=\"" + document.title + "\" /></a>"; document.write(writelogo); </script>

我想我可以使用VBScript在一个简单的脚本中编写document.title,然后简单地将它应用于变量,在静态图像的alt标签中看起来像这样。

<img src="Logo.jpg" alt="<%=mypageTitle%>">

是否有一种简单的方法可以在经典的asp页面上使用VBScript抓取页面标题并在alt标签中显示它?我尝试了几个不同的东西。谢谢你的帮助。

4 个答案:

答案 0 :(得分:0)

不,没有“更容易”的方式。服务器端没有任何页面标题的特殊持有者。自己声明一个保持变量并在HTML中使用它内联我认为是唯一的方法。还有其他选择:如果在特定情况下更有意义,则可以使用函数或对象的属性来代替变量。

答案 1 :(得分:0)

没有。如果页面标题未存储在服务器端,则VB将无法访问该信息。

我认为你最简单的选择是两个......

  1. 如果页面和标题已经过硬编码,那么也只需在alt标签中进行硬编码。
  2. 或者...

    1. 将其放入图片alt标签。

      &LT;脚本&GT;文件撰写(document.title时);&LT; /脚本&GT;

答案 2 :(得分:0)

首先,您需要使用ASP,因为您想要做的事情需要在出厂前完成。是的,ASP可用于检索标题标签中的内容,并替换alt标签等同一页面上的占位符。

如果您没有可以使用的标题标签,则可以使用页面名称,或者您可以从页面中检索某些内容以创建一个。例如,您可以搜索页面并捕获第一个标记或第一个标记之后的任何措辞。

如果您的页面是从CMS等数据库记录中即时构建的,那么它会变得更加容易,因为您不需要非常复杂的脚本来使用主题行或文章中的前几个单词。此方法对于在SEO之前创建的页面添加标题,描述,alt标签和关键字非常有用。

答案 3 :(得分:0)

我到达此页面寻找同一问题的答案。看到这里显示的材料激励我调整我的思维上限,并且去了解它。以下是我直接的解决方案,取自工作沙箱页面。

<head>
    <title>VBScript Date Functions Demonstration</title>
    <link rel="stylesheet"
          type="text/css"
          href="/css/WebApplication1.CSS">
    <link rel="stylesheet"
          type="text/css"href="/css/Widget_Generators.css">
    <script src="/JavaScipt/commonPageHelpers.js"></script>
</head>
<body onload="cphSetTitleFromTag()" lang="en-us">
<h1 class="PageTitle" id="spnPageTitle"></h1>

除其他外,WebApplication1.css定义了一个PageTitle类选择器,如下所示。

h1.PageTitle
{
    font-family:        Arial,Helvetica,Geneva,sans-serif ;
    font-size:          14pt ;
    font-weight:        bold ;
    font-style:         normal ;
    color:              purple ;
    text-align:         left ;

    margin-bottom:      1em ;
}

该定义的细节并不重要;重点是CSS中存在这样一个类,它嵌入或链接到您的页面。由于此测试站点中已有四个页面,所有页面共享相同的级联样式,因此我将它们放入一个单独的文件中,所有四个页面都链接到该文件中。

同样,所有四个页面都链接到commonPageHelpers.js,其中包含以下代码。

//  ----------------------------------------------------------------------------
//  Define some constants that have broad usage, well beyond their applications
//  herein.
//  ----------------------------------------------------------------------------

var cLENGTH_OF_EMPTY_STRING = 0;
var cDEFAULT_PAGE_TITLE_SPAN_PLACEHOLDER = "spnPageTitle";
var cTYPEOF_IS_STRING = "string";
var cTYPEOF_IS_UNDEFINED = "undefined";

var cTRUE = 1;
var cFALSE = 0;

var cTHE_EMPTY_STRING = "";

function cphSetTitleFromTag( pstrSpanID )
{
    if ( typeof( pstrSpanID) == cTYPEOF_IS_UNDEFINED )
    {   // Degenerate case 1 of 3: Use the default placeholder span ID.
        document.getElementById( cDEFAULT_PAGE_TITLE_SPAN_PLACEHOLDER ).innerHTML = document.title;
    }   // TRUE block, if ( typeof (pstrSpanID) == cTYPEOF_IS_UNDEFINED )
    else if (typeof(pstrSpanID) == cTYPEOF_IS_STRING )
    {   // Explicitly cast pstrSpanID to a string, to simplify subsequent processing.
        var strSpanIDString = pstrSpanID.toString( );

        if ( strSpanIDString.length > cLENGTH_OF_EMPTY_STRING )
        {
            document.getElementById( strSpanIDString ).innerHTML = document.title;
        }   // TRUE block, if ( strSpanIDString.length > cLENGTH_OF_EMPTY_STRING )
        else
        {   // Degenerate case 3 of 3: Use the default placeholder span ID.
            document.getElementById( cDEFAULT_PAGE_TITLE_SPAN_PLACEHOLDER ).innerHTML = document.title;
        }   // FALSE block, if ( strSpanIDString.length > cLENGTH_OF_EMPTY_STRING )
    }   // TRUE block, else if (typeof(pstrSpanID) == cTYPEOF_IS_STRING )
    else
    {   // Degenerate case 2 of 3: Use the default placeholder span ID.
        document.getElementById( cDEFAULT_PAGE_TITLE_SPAN_PLACEHOLDER ).innerHTML = document.title;
    }   // FALSE block, if ( typeof (pstrSpanID) == cTYPEOF_IS_UNDEFINED ) and else if (typeof(pstrSpanID) == cTYPEOF_IS_STRING )
}   // cphSetTitleFromTag

好的,大家好,我知道这个功能太过分了,但是它给我带来了选择不同元素ID的灵活性,而不需要触及这个例程,当它获得空字符串时,它会尝试优雅地失败,将其视为等效完全省略参数,这被类型的测试覆盖等于&#34; undefined&#34;在开幕词中。

将这个简短的JavaScript事件处理程序安全地隐藏在外部脚本文件中,从标题标记运行时获取标题文本只需要两件事。

  1. 外部脚本文件链接到您的页面,如上所示。
  2. Body标签有onload =&#34; cphSetTitleFromTag()&#34;属性,导致在页面加载完成后不带参数调用JavaScript函数 cphSetTitleFromTag
  3. 您希望标题显示的标记具有指定的 ID 属性。我选择 H1 是任意的。
  4. 为方便起见,我在commonPageHelpers.js发布了JavaScript库。

    最后,上述方法适用于客户端运行JavaScript的任何环境;服务器可以是任何东西,虽然ASP.NET页面可以在服务器端实现这一壮举。

相关问题