嗨,我正在尝试做一些非常基本的事情而不使用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标签中显示它?我尝试了几个不同的东西。谢谢你的帮助。
答案 0 :(得分:0)
不,没有“更容易”的方式。服务器端没有任何页面标题的特殊持有者。自己声明一个保持变量并在HTML中使用它内联我认为是唯一的方法。还有其他选择:如果在特定情况下更有意义,则可以使用函数或对象的属性来代替变量。
答案 1 :(得分:0)
没有。如果页面标题未存储在服务器端,则VB将无法访问该信息。
我认为你最简单的选择是两个......
或者...
将其放入图片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事件处理程序安全地隐藏在外部脚本文件中,从标题标记运行时获取标题文本只需要两件事。
为方便起见,我在commonPageHelpers.js发布了JavaScript库。
最后,上述方法适用于客户端运行JavaScript的任何环境;服务器可以是任何东西,虽然ASP.NET页面可以在服务器端实现这一壮举。