//////////////////////////////////////////////////////////////////////////////////////
//显示多标签打开网页
//common/common_multiTags.jsp,common/common_multiTags_tag.jsp
//配合使用,以下为例子
//////////////////////////////////////////////////////////////////////////////////////
/*****************************a.jsp***************************************************
进入多标签方式一
进入多标签方式二
*********************************************************************************/
/*****************************query.jsp*******************************************
*********************************************************************************/
//////////////////////////////////////////////////////////////////////////////////
function multiTagsProperties(isShowSplitScreen, focusTabIndex){//是否分屏(未实现),焦点在哪个标签上,多标签格式对象
this.isShowSplitScreen=(isShowSplitScreen==false?false:true);
this.focusTabIndex = focusTabIndex;
this.rightButtonsHtml = "";
this.tabStyle="";//可以有1或为空的类型,空为默认,1常用于二级多标签
this.properties = new Array("isShowSplitScreen", "rightButtonsHtml", "focusTabIndex", "tabStyle");
};
//此方法传外部调用
function multiTags(name, url, targetWin, multiTagsProperties){
var names = (typeof(name)!="string") ? name:new Array(name);
var urls = (typeof(url)!="string") ? url : new Array(url);
var tagObjects = new Array();
for(var i=0,len=(names==null?0:names.length); i");
html_form += ("");
html_form += ("");
html_form += ("");
html_form += ("");
html_form += ("");
}
//属性集合
if(multiTagsProperties){
var attrs = multiTagsProperties.properties;
for(var i=0,len=(attrs?attrs.length:0);i");
html_form += ("");
}
}
html_form += "";
var divid = "div_form_multitags";
if($){//改用jquery写法
var div = $("#"+divid);
if(div.size() > 0){
$(div).html(html_form);
}
else{
$(document.body).append(""+html_form+"
");
}
var fbox = $($("form[name='form_multitags']").eq(0));
if(targetWin){
$(fbox).attr("target", ((typeof(targetWin) == "string") ? targetWin : (!targetWin.name?targetWin:targetWin.name)));
}
fbox.submit();
}
else{
var div = document.getElementById(divid);
if(div){
div.innerHTML = "";
}
else{
div = document.createElement("div");
div.id = divid;
document.body.insertBefore(div);
}
div.innerHTML = html_form;
var fbox = eval("form_multitags");
if(targetWin){
fbox.target = (typeof(targetWin) == "string") ? targetWin : (!targetWin.name?targetWin:targetWin.name);
}
fbox.sumbit();
}
}
//此方法外部调用
function openTag(name,url){
url = _MM_multiTags_reBuild_URL(url);
parent.node_bar._MM_multiTags_addTag(name,url);
}
//此方法打开的可设定,只打开一次
function openTag2(tagObject){
tagObject.url = _MM_multiTags_reBuild_URL(tagObject.url);
parent.node_bar._MM_multiTags_addTag2(tagObject);
}
//此方法打开的可设定,只打开一次
function openTagOnce(uid_or_tagobject, name, url, closeFlag, isDelayLoad){
if(uid_or_tagobject instanceof tagObject){
openTag2(uid_or_tagobject);
}
else{
openTag2(new tagObject(uid_or_tagobject, name, url, closeFlag, isDelayLoad));
}
}
/**
* 当直接向标签框架的父亲对象执行时,调用此方法
*/
function appendTagFromParent(parentObject, uid, name, url, closeFlag, isDelayLoad){
var tagObj = new tagObject(uid,name, url, closeFlag, isDelayLoad);
tagObj.url = _MM_multiTags_reBuild_URL(tagObj.url);
parentObject.node_bar._MM_multiTags_addTag2(tagObj);
}
/**
* 判断是否存在了标签框架
*/
function existsTagFrame(parentObject){
return !(!parentObject.node_bar);
}
//获得当前激活的窗口的name
function getCurrentFocusFrameName(parentObject){
return parentObject.node_bar.current_focus_frame_name;
}
//定义对象,closeFlag是否显示关闭标连接,isDelayLoad是否推迟加载网页isDelayLoad=true只打开标签不加载网页,点击了标签后才加载(同时打开多个标签时应用多)
function tagObject(uid, name, url, closeFlag, isDelayLoad)
{
this.uid = uid;
this.name = name;
this.url = url;
this.closeFlag = (closeFlag != false && closeFlag != "false") ? true : false;//null或true,false
this.isDelayLoad = (isDelayLoad == true) ? true : false;
this.label_len = 6;
}
function multiTags_contentLoad(index){
try{node_bar._MM_multiTags_contentLoad(index);}catch(ex){;};
}
////////////////////////////////////////////////////////////////////////////////////////
//======================================================================================
function _MM_multiTags_contentLoad(index)//从0开始
{
index = (index) ? index : 0;
try{
var tag = document.getElementsByTagName("A")[index];
if(tag) tag.click();
else document.getElementsByTagName("A")[0].click();
}
catch(ex){
;
}
}
function _MM_multiTags_focusTagByCellId(cellId){
//激活
try{
var tag = document.getElementById(cellId);
if(tag){
tag.children[0].children[0].click();
return;
}
}
catch(ex){;}
_MM_multiTags_contentLoad();
}
//如果是相对地址,则需要进行处理
function _MM_multiTags_reBuild_URL(url)
{
//url转化为调用此方法的相对路径
if(!(/^\/|http:\/\/|https:\/\/|ftp:\/\/|mailto:\/\//i.test(url))){
var temp = window.location.href;
temp = temp.substr(0,temp.lastIndexOf("/"));
url = temp + "/" + url;
}
return url;
}
//======================================================
var __MAX_TAG_COUNT = 26;//最大打开数
var __cur_tag_count = 0;//有加有减
var __cur_tag_index = 0;//一直往上加
//增加一个标签项,closeFlag是否显示关闭标连接
function _MM_multiTags_addTag(name,url,closeFlag)
{
_MM_multiTags_addTag2(new tagObject(null,name,url,closeFlag));
}
//根据对象打开一标签,根据uid,如果找到相同的,则直接触发点击事件
function _MM_multiTags_addTag2(tagObject)
{
if(__cur_tag_count >= __MAX_TAG_COUNT){
alert("最多只能打开"+__MAX_TAG_COUNT+"个凭证窗口,请先关闭一些后再打开。");
return;
}
__cur_tag_count ++;
__cur_tag_index ++;
//=========================================
var uid = tagObject.uid;
var name = tagObject.name;
var url = tagObject.url;
var closeFlag = tagObject.closeFlag;
var label_len = !tagObject.label_len ? 6 : tagObject.label_len;
//-----------------------------------------
var cellId = "multiTags_tag_" + ((uid)?uid:__cur_tag_index);
//alert(cellId);
//-----------------------------------------
//--如果uid不为空,则先查找是否存在这样的
if(uid && document.getElementById(cellId)){//如果找到,则直接点击
document.getElementById(cellId).children[0].children[0].click();
return;
}
name = (!name) ? "未定义" : name;
//alert(tagObject.label_len)
var short_name = (name.length < label_len) ? name : name.substr(0, label_len)+"..";
var html = "";
html += " "+short_name+"";
html += "";
// html += "刷";
html += "";
if((closeFlag == null || closeFlag == "true" || closeFlag == true)){//处理是否显示关闭标签
// html += "关";
html += "";
}
//html += "";
html += "";
//alert(html);
var table = document.getElementById("barTable");
var row = table.rows[0];
var cell = row.insertCell(row.cells.length);
cell.innerHTML = html;
cell.id = cellId;
cell.className = "multiTags_menu_item";
if(tagObject.isDelayLoad == false){//不推迟加载的同时
if(closeFlag == null || closeFlag == true){//不允许关闭的窗口,则触发点击事件
cell.children[0].children[0].click();
}
}
}
//获取框架
function _MM_multiTage_GetFrameSet(){
return parent.window.node_mainframe;
}
///////////////////////////////////////////////////////
var current_focus_frame_name = null;
//点击了某一个标签项,注:必须以此为打开标签
function _MM_multiTags_doClickMenuItem(url, menuItem, isRefresh){
var frameset = _MM_multiTage_GetFrameSet();
var frames = frameset.getElementsByTagName("frame");
//=========================================
var frameset_rows = "30";
var frameName = 'node_mainWin_' + menuItem;
current_focus_frame_name = frameName;
//alert(frameName);
//--------------------------------------------
var indexFrame = -1;
for(var i=1,len=frames.length; i1) focus_cellId_afterRemove = row.cells[1].id;
else{
//alert("没有更多标签了,不能关闭");
}
}
else{
focus_cellId_afterRemove = row.cells[i-1].id;
}
break;
}
}
__cur_tag_count --;
//删除标签
var tag = document.getElementById(cellId);
if(tag){
tag.parentElement.removeChild(tag);
}
//=========删除窗口=========
var frameset = _MM_multiTage_GetFrameSet();
var frames = frameset.getElementsByTagName("frame");
var frameName = 'node_mainWin_' + cellId;
var frameset_rows = "";
for(var i=frames.length-1; i>0; i--){
var tmp_frame = frames[i];
if(tmp_frame.name == frameName){
frameset.removeChild(tmp_frame);
}
else{
frameset_rows += "0,";
}
}
frameset_rows += ",30";
//---------------------------
if(focus_cellId_afterRemove){
_MM_multiTags_focusTagByCellId(focus_cellId_afterRemove);
}
}
//分屏显示
function _MM_multiTags_splitScreen(span){
//未实现
}
//选中时要加亮
function _MM_multiTags_playSignLink(link){
if($){//改用jquery写法
$("a[id^='tab_link_']").each(function(i){
// $(this).css({"color": "#000", "font-weight": "normal"});
$(this).parent().attr("class","noactive_flag");
});
// $(link).css({"color": "#ff0000", "font-weight": "bold"});
$(link).parent().attr("class","active_flag");
$(link).parent().parent().parent().find("td").each(function () {
$(this).find("span").eq(0).css("border-right","none");
});
if($(link).parent().parent().next().length==0){
$(link).parent().parent().find("span").eq(0).css("border-right","1px solid #9D9C9C");
}
}
else{
try{playSignLink(link);}catch(ex){;}
}
}
///////////////////////////////////////////////////////////////