0

嗨,我正在尝试在不使用 Javascript 的情况下做一些非常基本的事情。我希望我的页面徽标的图像 alt 字段包含页面的标题。我宁愿使用 VB 脚本,以便将实际的 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

4 回答 4

0

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

我认为您最简单的选择是两个之一......

  1. 如果页面和标题已经被硬编码,也只需在 alt 标签中进行硬编码。

或者...

  1. 把它放在图片的alt标签中。

    <script>document.write(document.title);</script>

于 2013-04-22T20:17:08.470 回答
0

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

于 2013-04-21T16:49:27.770 回答
0

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

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

如果您的页面是根据 CMS 等数据库记录动态构建的,那么它会变得容易得多,因为您不需要非常复杂的脚本来使用主题行或文章中的前几个单词。这种方法对于在搜索引擎优化之前创建的页面添加标题、描述、替代标签和关键字最有用。

于 2013-04-29T08:02:32.600 回答
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,而无需触及这个例程,并且当它获得空字符串时,它会尝试优雅地失败,将其视为等同于省略完全参数,这在开始语句中的 typeof 等于 "undefined" 的测试中涵盖。

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

  1. 如上所示,外部脚本文件链接到您的页面。
  2. Body 标记具有 onload="cphSetTitleFromTag()" 属性,这会导致在页面完成加载时调用 JavaScript 函数cphSetTitleFromTag时不带参数。
  3. 您希望标题出现的标签具有指定的ID属性。我对H1的选择是任意的。

为了您的方便,我在commonPageHelpers.js上发布了 JavaScript 库。

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

于 2016-01-03T08:15:47.403 回答