我在SO(Dojo: Select a tab on load depending on url parameter)上找到了此页面,但我仍然不清楚如何通过URL调用打开标签页。
这是我的HTML。
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script LANGUAGE="JavaScript1.2" type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
djConfig="usePlainJson : true, parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.TextBox");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojo.data.ItemFileReadStore");
</script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/>
</head>
<body class="claro" >
<div dojoType="dijit.layout.BorderContainer" style="width: 100%; height: 100%;">
<div dojoType="dijit.layout.ContentPane" region="top">
HEADER
</div>
<div dojoType="dijit.layout.TabContainer" region="center">
<div dojoType="dijit.layout.ContentPane" title="tab1">
<A NAME="tab1help">TAB 1 HELP</A>
</div>
<div dojoType="dijit.layout.ContentPane" title="tab2">
<A NAME="tab1help">TAB 2 HELP</A>
</div>
</div>
<div dojoType="dijit.layout.ContentPane" region="bottom">
FOOTER
</div>
</div>
<script language="Javascript1.2" type="text/javascript">
SCRIPT HERE TO GENERATE DIV CONTENT
</script>
</body>
</html>
底部的javascript会生成包含锚点的DIV内容。访问此页面的方法是简单地指定“help.html”。
问题是如何在URL(help.html)中指定打开此页面并打开选项卡2(或选项卡1或选项卡5?),具体取决于URL。甚至可以这样做吗?
作为背景,这是一个包含大约10个主题(每个都有一个标签)的帮助页面,它将作为卫星窗口打开。我需要能够打开一个特定的选项卡并转到锚点,具体取决于冲浪者在主Web应用程序窗口中需要帮助的功能。
非常感谢! 珍妮
答案 0 :(得分:2)
首先,您需要添加查询参数或使用哈希来指定要显示的主题编号,例如,您可以使用help.html?topic=1
或help.html#1
。加载页面后,您可以从URL获取主题编号。
然后获取选项卡容器的引用,并根据主题编号选择相应的选项卡。例如:
var tabContainer = dijit.byId("myTab");
var topicNumber = 5; // Get from URL
tabContainer.selectChild(tabContainer.getChildren()[topicNumber - 1]); // Assume that to the topic number starts from 1
您还可以尝试将ID分配给每个标签,例如,topic1
为主题编号1.然后
tabContainer.selectChild(dijit.byId("topic" + topicNumber));
答案 1 :(得分:1)
您可以使用php include。
<div dojoType="dijit.layout.ContentPane" title="tab1">
<?php include 'help.php';?>
</div>
答案 2 :(得分:0)
我所做的所有研究表明,这不能通过URL调用完成。事实证明,您通过添加所选参数来打开所选标签...示例如下......
<div dojoType="dijit.layout.ContentPane" title="HELP" selected="true">
谢天谢地,我没有静态页面(它们是通过Catalyst生成的)所以我可以动态生成真实条件。
希望如果其他人有同样的问题,这将有所帮助。 JW