This commit is contained in:
ChuXun
2025-10-11 18:15:20 +08:00
parent 98c6e4b11a
commit cf8f4c5c3a
283 changed files with 105716 additions and 3 deletions

View File

@@ -0,0 +1,2291 @@
var currentLanguage = (function (){
function getcookie(objname){
var arrstr = document.cookie.split("; ");
for(var i = 0;i < arrstr.length;i ++){
var temp = arrstr[i].split("=");
if(temp[0] == objname){
return unescape(temp[1]);
}
}
}
var en = getcookie('browserLocale');
return en && en == 'en_US' ? "en" : "zh-cn"
})();
function getTplSub(iframe) {
try {
var attData = iframe.getAttribute('data');
if(typeof attData != "undefined") {
var attJson = JSON.parse(attData);
var setting = AttachmentSetting;
if(typeof attJson != "undefined" && typeof setting != "undefined" && typeof setting.isMicroNodeConfig != "undefined"
&& setting.isMicroNodeConfig && typeof setting.attachments != "undefined") {
var attachments = setting.attachments;
for (var i = 0; i < attachments.length; i++) {
var attMid = attachments[i].mid;
var dataMid = attJson.mid;
var oriNodeStatus = attachments[i].oriNodeStatus;
if(typeof attMid != "undefined" && typeof dataMid != "undefined" && typeof oriNodeStatus != "undefined" && oriNodeStatus != "open" && attMid == dataMid){
return '-review';
}
}
}
}
} catch (ex) {
console.log(ex);
}
return "";
}
Ext.define('ananas.ModuleOutput',{
alternateClassName : 'MO',
singleton : true,
baseUrl : '/ananas/',
constructor : function(){
var me = this;
me.callParent(arguments);
me.tpls = {};
var lujing = "zt";
var isEn = currentLanguage == "en" ? "job-icon-en" : "";
var replaceComma = function(values) {
values = values || '';
return Ext.encode(values).replace(/\'/g, '`');
}
var getTemplate = function () {
try {
return new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/video/index-review.html?v=2024-0507-1922" ',
'class="ans-attach-online-review" data = \'{[this.values(values)]}\' ',
'frameborder="0" scrolling="no" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">',
'</iframe>',
{
values : replaceComma
}
)
} catch (e) {
console.log(e);
}
}
Ext.apply(me.tpls,{
'insertbook-pad' : new Ext.XTemplate(
'<div class="ans-book">',
'<tpl if="readurl">',
'<div class="ans-book-cover"><a href="{[this.createHref(values)]}" class="as-ref-link" ><img src="{coverurl}"/></a></div>',
'</tpl>',
'<tpl if="Ext.isEmpty(values.readurl)">',
'<div class="ans-book-cover"><img src="{coverurl}"/></div>',
'</tpl>',
'<div class="ans-book-info">',
'<div class="ans-ref-bookname">{bookname}</div>',
'<tpl if="author"><div class="ans-ref-author">{author}</div></tpl>',
'<tpl if="publishdate"><div class="ans-ref-publish">{publishdate}</div></tpl>',
'</div>',
{
createHref: function(data) {
var agent = navigator.userAgent || '';
if (agent.indexOf('ChaoXingStudy') == -1) {
return data.readurl + '&unitid=7719';
}
var readurl = data.readurl + '&unitid=7719&showpdg=true';
readurl= readurl.replace("https", "http");
return 'javascript: MO.openBook(\''+ data.bookname +'\', \'' + readurl + '\');';
}
}
),
'insertdoc-online-doc-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/'+lujing+'/doc/index.html?v=2018-0126-1905" height="70px" class="ans-zt-attach-online" objectid="{objectid}" frameborder="0" scrolling="no"></iframe>',
'</div>'
),
'insertdoc-online-pdf-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/'+lujing+'/pdf/index.html?v=2025-0214-2341" height="70px" class="ans-zt-attach-online" objectid="{objectid}" frameborder="0" scrolling="no"></iframe>',
'</div>'
),
'insertdoc-online-xls-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/'+lujing+'/xls/index.html?v=2018-0126-1905" height="70px" class="ans-zt-attach-online" objectid="{objectid}" frameborder="0" scrolling="no"></iframe>',
'</div>'
),
'insertdoc-online-ppt-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/'+lujing+'/ppt/index.html?v=2018-0126-1905" height="70px" class="ans-zt-attach-online" objectid="{objectid}" frameborder="0" scrolling="no"></iframe>',
'</div>'
),
'insertbook-online-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '">任务点</div>',
'</tpl>',
'</div>',
'<div class="ans-book">',
'<tpl if="readurl">',
'<div class="ans-book-cover"><a href="{[this.createHref(values)]}" class="as-ref-link" ><img src="{coverurl}"/></a></div>',
'</tpl>',
'<tpl if="Ext.isEmpty(values.readurl)">',
'<div class="ans-book-cover"><img src="{coverurl}"/></div>',
'</tpl>',
'<div class="ans-book-info">',
'<div class="ans-ref-bookname">{bookname}</div>',
'<tpl if="author"><div class="ans-ref-author">{author}</div></tpl>',
'<tpl if="publishdate"><div class="ans-ref-publish">{publishdate}</div></tpl>',
'</div>',
{
createHref: function(data) {
var agent = navigator.userAgent || '';
if (agent.indexOf('ChaoXingStudy') == -1) {
return data.readurl + '&unitid=7719';
}
var readurl = data.readurl + '&unitid=7719&showpdg=true';
readurl= readurl.replace("https", "http");
return 'javascript: MO.openBook(\''+ data.bookname +'\', \'' + readurl + '\');';
}
}
),
'insertbook' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/innerbook/simple.html?v=2023-0616-1622" ',
'data = \'{[this.values(values)]}\'',
'{[this.jobid(values)]} readurl="{readurl}" coverurl="{coverurl}" bookname="{bookname}" author="{author}" publisher="{publisher}" publishdate="{publishdate}" start="{start}" end="{end}" innerurl="{[this.url(values)]}" class="ans-attach-online ans-book-simple" frameborder="0" scrolling="no">',
'</iframe>',
'</div>',
{
url : function(values){
var url = values.readurl.replace("realRead","innerurl");
if(values.start){
url+="&start="+values.start;
}
if(values.end){
url+="&end="+values.end;
}
return url + "&unitid=7719";
}
},
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
}
},
{
values : replaceComma
}
),
'insertbook-review' : getTemplate(),
'insertbook-online' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<div class="ans-book-title"><span class="fl">{[this.getBookTips(values)]}</span><span class="fr">{bookname}&nbsp;-&nbsp;{author}</span></div>',
'<iframe src="'+me.baseUrl+'modules/innerbook/index.html?v=2024-0826-2042" ',
'data = \'{[this.values(values)]}\'',
'{[this.jobid(values)]} start="{start}" end="{end}" innerurl="{[this.url(values)]}" class="ans-attach-online ans-book" frameborder="0" scrolling="no">',
'</iframe>',
'</div>',
{
url : function(values){
var url = values.readurl.replace("realRead","innerurl");
if(values.start){
url+="&start="+values.start;
} else {
url+="&start=1";
}
if(values.end){
url+="&end="+values.end;
} else {
url+="&end="+values.size;
}
return url + "&unitid=7719";
}
},
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
}
},
{
values : replaceComma
},{
getBookTips: function(values){
var btime = typeof values.btime == "undefined" ? false : values.btime;
var timing = typeof values.timing == "undefined" ? "0" : values.timing;
if (!!btime && timing != "0") {
return langMap.bookTip2 + timing + langMap.bookTip3;
}
}
}
),
'insertbook-online-review' : getTemplate(),
'insertvideo-online-pad' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" style="margin-left:10px;">任务点</div>',
'</tpl>',
'<iframe src="'+me.baseUrl+'modules/video/index_wap.html?v=2018-0126-1905" class="ans-insertwork-online" style="height:180px;" objectid="{objectid}" jobid="{jobid}" fastforward="{fastforward}" switchwindow="{switchwindow}" vbegin="{vbegin}" vend="{vend}" mid="{mid}" level="{level}" frameborder="0" scrolling="no" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>',
'<tpl if="jobid">',
'</tpl>',
'</div>'
),
'insertvideo-pad' : new Ext.XTemplate(
'<div class="ans-attach ans-attach-{[values.type.slice(1)]}">',
'<a target="_blank" href="'+me.baseUrl+'modules/zt/video/preview.html?objectid={objectid}" class="ans-attach-title">{name}</a>',
'<span class="ans-attach-size">{hsize}</span>',
'</div>'
),
'insertvideo-online' : new Ext.XTemplate(
'<div class="ans-attach-ct videoContainer">',
'<tpl if="jobid">',
'<div class="ans-job-icon ans-job-icon-clear ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" ><i></i></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/video/index.html?v=2025-0725-1842" ',
'class="ans-attach-online ans-insertvideo-online" ',
'data = \'{[this.values(values)]}\' ',
'objectid="{objectid}" fastforward="{fastforward}" switchwindow="{switchwindow}" vbegin="{vbegin}" vend="{vend}" v_begin="{v_begin}" v_end="{v_end}" mid="{mid}" {[this.jobid(values)]} frameborder="0" scrolling="no" {[this.danmu(values)]} allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">',
'</iframe>',
'<div id="topicList" style="border:none;"><div id="topicType"></div><div id="topicContent"></div></div>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
danmu : function(d){
if(d.danmaku == 1){
return 'style="height:610px;"';
}
return '';
},
values : replaceComma
}
),
'insertvideo-online-review' : getTemplate(),
'richvideo' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/richvideo/index.html?v=2018-0126-1905" ',
'class="ans-attach-online ans-insertvideo-online" ',
'objectid="{objectid}" fastforward="{fastforward}" switchwindow="{switchwindow}" vbegin="{vbegin}" vend="{vend}" mid="{mid}" frameborder="0" scrolling="no" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">',
'</iframe>',
'</div>'
),
'richvideo-review' : getTemplate(),
'insertvideo' : new Ext.XTemplate(
'<span class="ans-attach ans-attach-{[values.type.slice(1)]}" data = \'{[this.values(values)]}\'>',
'<a target="_blank" href="',
me.baseUrl,
'modules/video/single.html?objectid={objectid}&vbegin={vbegin}&vend={vend}&mid={mid}&fastforward={fastforward}&switchwindow={switchwindow}',
'" class="ans-attach-title">{name}</a>',
'<span class="ans-attach-size">{hsize}</span>',
'</span>',
{
values : replaceComma
}
),
'insertvideo-review' : getTemplate(),
'insertdoc-online-ppt' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/pdf/index.html?v=2025-0805-1153" {[this.jobid(values)]} data=\'{[this.values(values)]}\' class="ans-attach-online insertdoc-online-ppt" objectid="{objectid}" download="{download}" frameborder="0" scrolling="no" allowfullscreen="true"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertdoc-online-ppt-review' : getTemplate(),
'insertzhuanti' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/fxzt/index.html?v=2023-1020-1905" data = \'{[this.values(values)]}\' frameborder="0" scrolling="no" width="100%" style="margin-left:0em;"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertcxjour' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/cxjour/index.html?v=2020-0417-1856" data = \'{[this.values(values)]}\' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertdoc-online-doc' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="' + me.baseUrl + 'modules/doc/index.html?v=2020-1030-1427" class="ans-attach-online insertdoc-online-doc" objectid="{objectid}" download="{download}" frameborder="0" scrolling="no"></iframe>',
'</div>'
),
'insertdoc-online-doc-review' : getTemplate(),
'insertdoc-online-pdf' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/pdf/index.html?v=2025-0805-1153" {[this.jobid(values)]} data=\'{[this.values(values)]}\' class="ans-attach-online insertdoc-online-pdf" objectid="{objectid}" download="{download}" frameborder="0" scrolling="no" allowfullscreen="true"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertdoc-online-pdf-review' : getTemplate(),
'insertdoc-doc' : new Ext.XTemplate(
'<span class="ans-attach ans-attach-doc">',
'<a target="_blank" href="' + ServerHosts.CS_HOST + '/download/{objectid}" class="ans-attach-title">{name}</a>',
'<span class="ans-attach-size">{hsize}</span>',
'</span>'
),
'insertdoc-doc-review' : getTemplate(),
'insertdoc-pdf' : new Ext.XTemplate(
'<span class="ans-attach ans-attach-pdf">',
'<a target="_blank" href="' + ServerHosts.CS_HOST + '/download/{objectid}" class="ans-attach-title">{name}</a>',
'<span class="ans-attach-size">{hsize}</span>',
'</span>'
),
'insertdoc-pdf-review' : getTemplate(),
'insertdoc-ppt' : new Ext.XTemplate(
'<span class="ans-attach ans-attach-ppt">',
'<a target="_blank" href="' + ServerHosts.CS_HOST + '/download/{objectid}" class="ans-attach-title">{name}</a>',
'<span class="ans-attach-size">{hsize}</span>',
'</span>'
),
'insertdoc-ppt-review' : getTemplate(),
'downloadfile' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="' + me.baseUrl + 'modules/downloadfile/index-pc.html?v=2023-0420-1413" data=\'{[this.values(values)]}\' module="downloadfile" class="downloadfile" objectid="{objectid}" frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'downloadfile-review':getTemplate(),
'insertdoc-download' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="' + me.baseUrl + 'modules/downloadfile/index-pc.html?v=2023-1222-1637" data=\'{[this.values(values)]}\' class="downloadfile" module="insertdoc" objectid="{objectid}" frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertdoc-download-review':getTemplate(),
'insertcxvideo' : new Ext.XTemplate(
'<iframe src="'+me.baseUrl+'modules/cxvideo/index.html?v=2018-0126-1905" class="ans-attach-online" d={itemid} frameborder="0" scrolling="no"></iframe>'
),
'insertmooc' : new Ext.XTemplate(
'<tpl if="type==\'knowledge\'">',
'<span class="ans-mooc-link ans-knowledge">',
'<a href="/mooc-ans/nodedetailcontroller/visitnodedetail?clazzId=0&knowledgeId={id}#courseChapterSelected" target="_mooc">{label} {name}</a>',
'</span>',
'</tpl>',
'<tpl if="type==\'discuss\'">',
'<span class="ans-mooc-link ans-discuss">',
'<a href="/mooc-ans/groupcontroller/fullscreenqaqnddiscuss?articleId={id}" target="_mooc">{title}</a>',
'</span>',
'</tpl>',
'<tpl if="type==\'qa\'">',
'<span class="ans-mooc-link ans-qa">',
'<a href="/mooc-ans/groupcontroller/fullscreenqa?qaId={id}" target="_mooc">{title}</a>',
'</span>',
'</tpl>'
),
'ballchart' : new Ext.XTemplate(
'<div class="ans-ballchart-container">',
'<div class="ballchart-hearder" style="display:none;"><img class="icon-ballchart fl" src="/ananas/css/icon-ballchart.png"/><span class="title fl">{keyword}</span></div>',
'<iframe src="/ananas/dialog/ballchart?kw={[this.encodekeyword(values)]}" class="ans-ballchart-module" frameborder="0" scrolling="no"></iframe>',
'</div>',
{
encodekeyword : function(d){
return encodeURIComponent(d.keyword);
}
}
),
'erya' : new Ext.XTemplate(
'<iframe src="'+me.baseUrl+'modules/erya/index.html?v=2018-0126-1905" class="ans-attach-online ans-insertvideo-online" videoid="{videoid}" courseid="{eryaid}" frameborder="0" scrolling="no"></iframe>'
),
'work' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" ></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/work/index.html?v=2024-1212-1629&castscreen={[window.castscreen || 0]}" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" style="min-width: 650px;min-height: 300px;"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'work-review' :getTemplate(),
'insertlive' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/live/index.html?v=2023-1218-1127" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="120"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertlive-review' : getTemplate(),
'insertread' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/read/index.html?v=2020-0524-1844" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertread-review':getTemplate(),
'insertreadV2' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" ></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/read/indexV2.html?v=2023-0524-1121" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertreadV2-review':getTemplate(),
'insertvote' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/vote/index-pc-new.html?v=2023-0524-0937" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76" style="border-radius:4px"></iframe>',
'</div>',
{
jobid : function(d) {
if (d.jobid) {
return 'jobid="' + d.jobid + '"';
}
return '';
},
values : replaceComma,
}
),
'insertvote-review' : getTemplate(),
'insertvote-old' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/vote/index-pc.html?v=2023-0524-0937" {[this.jobid(values)]} ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76" style="border-radius:4px"></iframe>',
'</div>',
{
jobid : function(d) {
if (d.jobid) {
return 'jobid="' + d.jobid + '"';
}
return '';
},
values : replaceComma,
}
),
'insertvote-old-review':getTemplate(),
'insertnote' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/note/index-pc.html?v=2023-0714-1616" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertchapter' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/chapter/index-pc.html?v=2021-1230-1418" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertsubject' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/subject/index-pc.html?v=2023-0111-1909" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'realplay': new Ext.XTemplate(
'<iframe src="'+me.baseUrl+'modules/realplay/index.html?v=2018-0126-1905" ',
'class="ans-realplay" ',
'objectid="{objectid}" mid="{mid}" realplayurl="{realplayurl}" frameborder="0" scrolling="no">',
'</iframe>'
),
'insertflash-online': new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/flash/index.html?v=2023-0420-1515" class="downloadfile" objectid="{objectid}" data=\'{[this.values(values)]}\' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
// 'insertflash-online-review':getTemplate(),
'insertflash': new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="'+me.baseUrl+'modules/flash/index.html?v=2023-0420-1515" class="downloadfile" objectid="{objectid}" data=\'{[this.values(values)]}\' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
// 'insertflash-review':getTemplate(),
'insertaudio-online': new Ext.XTemplate(
'<div class="ans-attach-ct" aria-label="{name}">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" ></div>',
'</tpl>',
'<iframe src="'+me.baseUrl+'modules/audio/index_new.html?v=2024-1107-1820" data = \'{[this.values(values)]}\' {[this.jobid(values)]} class="ans-attach-online ans-insertaudio" module="insertaudio" objectid="{objectid}" fastforward="{fastforward}" name="{name}" doublespeed="{doublespeed}" frameborder="0" scrolling="no"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
}
},
{
values : replaceComma
}
),
'insertaudio-online-review': getTemplate(),
'insertaudio-online-pad': new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="'+me.baseUrl+'modules/audio/index_wap.html?v=2018-0518-1206" {[this.jobid(values)]} class="ans-attach-online ans-insertaudio" objectid="{objectid}" name="{name}" frameborder="0" scrolling="no"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
}
}
),
'insertvoice-online' : new Ext.XTemplate(
'<div class="ans-attach-ct" aria-label="{name}">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" ></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/audio/index_new.html?v=2023-0524-1705" data = \'{[this.values(values)]}\' {[this.jobid(values)]} class="ans-attach-online ans-insertaudio" module="insertvoice" objectid="{objectid}" fastforward="{fastforward}" name="{name}" doublespeed="{doublespeed}" frameborder="0" scrolling="no"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
}
},
{
values : replaceComma
}
),
'insertvoice-online-review':getTemplate(),
'questionnaire' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="' + me.baseUrl + 'modules/questionnaire/index.html?v=2023-1008-1100" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertaddresource' : new Ext.XTemplate(
'<a href="{[this.geturl(values)]}">{[this.geturl(values)]}',
'</a>',
{
geturl : function(values) {
values = values || '';
if(values.link.indexOf("http") != 0){
values.link = "http://"+values.link;
}
if(values.link){
values.link = values.link.replace(/[<>"]/g,function(c){return {'<':'&lt;','>':'&gt;','&':'&;','"':'&quot;'}[c];});
}
if(values.link.indexOf("zhuanti.chaoxing.com/mobile/mooc/tocourse/") != -1){
return values.link.replace("zhuanti.chaoxing.com/mobile/mooc/tocourse/", "mooc1.chaoxing.com/zt/")+".html";
}else if(values.link.indexOf("special.zhexuezj.cn/mobile/mooc/tocourse/") != -1){
return values.link.replace("special.zhexuezj.cn/mobile/mooc/tocourse/", "mooc1.chaoxing.com/zt/")+".html";
} else if(values.link.indexOf("special.rhky.com/mobile/mooc/tocourse/") != -1){
return values.link.replace("special.rhky.com/mobile/mooc/tocourse/", "mooc1.chaoxing.com/zt/")+".html";
}else{
return values.link;
}
}
}
),
'insertbbs' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" style="margin:10px 0;"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/insertbbs/index.html?v=2025-0109-1519&castscreen={[window.castscreen || 0]}" ',
'data = \'{[this.values(values)]}\'',
'module="insertbbs" frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertbbs-review':getTemplate(),
'inserttopic' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" tabindex="0" aria-label="任务点未完成" role="option" style="margin:10px 0;"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/insertbbs/index.html?v=2025-0109-1519&castscreen={[window.castscreen || 0]}" ',
'data = \'{[this.values(values)]}\'',
'module="inserttopic" frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'inserttopic-review':getTemplate(),
'insertmicroCourse' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/microCourse/index-pc.html?v=2024-0911-1822" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="500"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertmicroCourse-review':getTemplate(),
'insertlink-review': getTemplate(),
'insertlink' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/insertlink/index-pc.html?v=2019-0409-1150" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'resource3d' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/resource3d/index-pc.html?v=2020-0911-1822" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="500"></iframe>',
'</div>',
{
values : replaceComma
}
),
// 'resource3d-review':getTemplate(),
'resourceQj' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/resourceQj/index-pc.html?v=2021-0825-1800" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="500"></iframe>',
'</div>',
{
values : replaceComma
}
),
// 'resourceQj-review':getTemplate(),
'resourceVR' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/resourceVR/index-pc.html?v=2022-0819-1800" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="85"></iframe>',
'</div>',
{
values : replaceComma
}
),
// 'resourceVR-review':getTemplate(),
'insertclasstask' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" style="margin-bottom: -15px"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/classTask/index-pc.html?v=2023-0606-2000" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="120"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertclasstask-review' : getTemplate(),
'experience' : new Ext.XTemplate(
'<div class="ans-attach-ct">',
'<iframe src="' + me.baseUrl + 'modules/experience/index.html?v=2023-0524-1810"',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="80"></iframe>',
'</div>',
{
values : replaceComma
}
),
'sizhenglink' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/sizhenglink/index.html?version=3" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="500"></iframe>',
'</div>',
{
values : replaceComma
}
),
'iSearch' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/iSearch/index-pc.html" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="76"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertcustom' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/custom/index-pc.html?v=2021-0524-1749" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="120"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'hyperlink' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" style="margin-bottom: -15px"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/hyperlink/index-pc.html?v=2025-0928-1423" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="120" {[this.iframeSize(values)]}></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma,
iframeSize : function(d){
if(d.iframeWidth && d.iframeHeight){
var iframeWidth = d.iframeWidth;
var iframeHeight = d.iframeHeight;
if (iframeHeight.indexOf("%") > -1) {
var baseValue = 480;
var percentage = parseInt(iframeHeight);
var result = baseValue * (percentage / 100);
iframeHeight = result + "px";
}
return 'style="width:' + iframeWidth + ';height:' + iframeHeight + ';"';
}
return '';
},
}
),
'hyperlink-review':getTemplate(),
'knowledgeGraph' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/topicAttachment/index-pc.html" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="620px"></iframe>',
'</div>',
{
values : replaceComma
}
),
'insertlabreport' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<tpl if="jobid">',
'<div class="ans-job-icon ' + isEn + '" style="margin-bottom: -15px"></div>',
'</tpl>',
'<iframe src="' + me.baseUrl + 'modules/zt/labReport/index-pc.html" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%" height="120px"></iframe>',
'</div>',
{
jobid : function(d){
if(d.jobid){
return 'jobid="'+d.jobid+'"';
}
return '';
},
values : replaceComma
}
),
'insertvisuclass' : new Ext.XTemplate(
'<div class="ans-attach-ct" style="margin-bottom:10px;">',
'<iframe src="' + me.baseUrl + 'modules/zt/visuClassAi/index-pc.html?v=2025-0925-1800" ',
'data = \'{[this.values(values)]}\'',
' frameborder="0" scrolling="no" width="100%"></iframe>',
'</div>',
{
values : replaceComma
}
)
});
},
getTpl : function (module, data, iframe){
var tpl;
if (data && data.jobid) {
iframe.setAttribute('type', 'online');
}
if (module == 'insertdoc') {
if (data.type == "" && data.name && data.name.toString().indexOf(".") != -1) {
data.type = data.name.toString().substring(data.name.lastIndexOf("."), data.name.length)
}
var type = data.type.slice(1);
type = type.toLowerCase();
data.download = iframe.getAttribute("download");
switch (type) {
case 'pptx' :
case 'ppt' :
type = 'ppt';
break;
case 'docx' :
case 'doc' :
case 'xlsx' :
case 'xls' :
type = 'pdf';
break;
}
try {
if (iframe.getAttribute('type') == 'online') {
tpl = 'insertdoc-online-' + type;
} else {
//tpl = 'insertdoc-' + type;
tpl = 'insertdoc-download';
}
} catch (e) {
tpl = 'insertdoc-online-' + type;
}
var agent = navigator.userAgent || '';
if (agent.indexOf('chaoxing_wisdomclass') != -1) {
tpl = 'insertdoc-download';
}
tpl = tpl + getTplSub(iframe);
} else if (module == 'insertvideo') {
try {
if (iframe.getAttribute('type') == 'online') {
tpl = 'insertvideo-online';
} else {
tpl = 'insertvideo';
}
} catch (e) {
if (data.jobid) {
tpl = 'insertvideo-online';
} else {
tpl = 'insertvideo';
}
}
var agent = navigator.userAgent || '';
if (agent.indexOf('chaoxing_wisdomclass') != -1) {
tpl = tpl + "-pad";
} else {
tpl = tpl + getTplSub(iframe);
}
} else if (module == 'insertbook') {
// ie7 无权限
try {
if (iframe.getAttribute('type') == 'online') {
tpl = 'insertbook-online';
} else {
tpl = 'insertbook';
}
} catch (e) {
if (data.jobid) {
tpl = 'insertbook-online';
} else {
tpl = 'insertbook';
}
}
var agent = navigator.userAgent || '';
if (agent.indexOf('chaoxing_wisdomclass') != -1) {
tpl = tpl + "-pad";
} else {
tpl = tpl + getTplSub(iframe);
}
} else if (module == 'insertaudio') {
tpl = 'insertaudio-online';
var agent = navigator.userAgent || '';
if (agent.indexOf('chaoxing_wisdomclass') != -1) {
tpl = tpl + "-pad";
} else {
tpl = tpl + getTplSub(iframe);
}
} else if (module == 'insertvoice') {
tpl = 'insertvoice-online';
} else if (module == 'insertsubject') {
tpl = 'insertsubject';
} else if (module == 'insertflash') {
try {
if (iframe.getAttribute('type') == 'online') {
tpl = 'insertflash-online';
} else {
tpl = 'insertflash';
}
} catch (e) {
tpl = 'insertflash-online';
}
} else if (module == 'experience') {
tpl = 'experience';
} else if (module == "insertlabreport") {
tpl = 'insertlabreport';
} else if (module == 'insertvote') {
if (parent.location.href.indexOf("/mycourse/teacherstudy") < 0 && parent.location.href.indexOf("mycourse/tch") < 0 && parent.location.href.indexOf("/mycourse/studentstudy") < 0 && location.href.indexOf("/nodedetailcontroller/visitnodedetail") < 0 && location.href.indexOf("/micro-node-detail") < 0 ) {
tpl = 'insertvote-old';
} else {
tpl = 'insertvote';
}
tpl = tpl + getTplSub(iframe);
} else if (module == "insertvisuclass") {
tpl = 'insertvisuclass';
} else {
tpl = module;
}
try {
if(module == "hyperlink" || module == "insertclasstask" || module == "insertmicroCourse" || module == "inserttopic" || module == "insertbbs"
|| module == "insertreadV2" || module == "insertread" || module == "insertlive" || module == "work" || module == "downloadfile" || module == "richvideo") {
if(tpl.indexOf("-review") < 0) {
tpl = tpl + getTplSub(iframe);
}
}
} catch (e) {
console.log(e);
}
return this.tpls[tpl];
}
});
Ext.define('ananas.JobCounter',{
alternateClassName : 'JC',
singleton : true,
mixins: {
observable: 'Ext.util.Observable'
},
jobcounter : 0,
attachments : null,
constructor: function () {
var me = this;
me.mixins.observable.constructor.call(me);
me.addEvents('completed');
},
completed : function(index){
var me = this;
if(me.jobcounter<=0 && !me.attachments){
return;
}
if(me.attachments[index].job){
me.jobcounter--;
me.attachments[index].job = false;
//if(me.jobcounter==0){
me.fireEvent('completed');
//}
}
}
});
var $UE = {};
$UE.ajax = function() {
var fnStr = 'XMLHttpRequest()';
try {
new ActiveXObject("Msxml2.XMLHTTP");
fnStr = 'ActiveXObject(\'Msxml2.XMLHTTP\')';
} catch (e) {
try {
new ActiveXObject("Microsoft.XMLHTTP");
fnStr = 'ActiveXObject(\'Microsoft.XMLHTTP\')'
} catch (e) {
}
}
var creatAjaxRequest = new Function('return new ' + fnStr);
function json2str(json) {
var strArr = [];
for (var i in json) {
//忽略默认的几个参数
if(i=="method" || i=="timeout" || i=="async") continue;
//传递过来的对象和函数不在提交之列
if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) {
strArr.push( encodeURIComponent(i) + "="+encodeURIComponent(json[i]) );
}
}
return strArr.join("&");
}
return {
request:function(url, ajaxOptions) {
var ajaxRequest = creatAjaxRequest(),
//是否超时
timeIsOut = false,
//默认参数
defaultAjaxOptions = {
method:"POST",
timeout:5000,
async:true,
data:{},//需要传递对象的话只能覆盖
onsuccess:function() {
},
onerror:function() {
}
};
if (typeof url === "object") {
ajaxOptions = url;
url = ajaxOptions.url;
}
if (!ajaxRequest || !url) return;
var ajaxOpts = ajaxOptions ? Ext.apply(defaultAjaxOptions, ajaxOptions) : defaultAjaxOptions;
var submitStr = json2str(ajaxOpts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing"
//如果用户直接通过data参数传递json对象过来则也要将此json对象转化为字符串
if (ajaxOpts.data){
submitStr += (submitStr? "&":"") + json2str(ajaxOpts.data);
}
//超时检测
var timerID = setTimeout(function() {
if (ajaxRequest.readyState != 4) {
timeIsOut = true;
ajaxRequest.abort();
clearTimeout(timerID);
}
}, ajaxOpts.timeout);
var method = ajaxOpts.method.toUpperCase();
var str = url + (url.indexOf("?")==-1?"?":"&") + (method=="POST"?"":submitStr+ "&noCache=" + +new Date);
ajaxRequest.open(method, str, ajaxOpts.async);
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4) {
if (!timeIsOut && ajaxRequest.status == 200) {
ajaxOpts.onsuccess(ajaxRequest);
} else {
ajaxOpts.onerror(ajaxRequest);
}
}
};
if (method == "POST") {
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send(submitStr);
} else {
ajaxRequest.send(null);
}
}
};
}();
//by zhanyi
function uParse(selector,opt,params){
var unlock = function(){
var p = window;
while(p){
try {
if(p.onReadComplete){
if(typeof console == 'object')
console.log('call uParse to onReadComplete');
p.onReadComplete();
break;
}
if(p.parent==p){
break;
}
p = p.parent;
} catch(e) {
break;
}
}
},jobcounter=0,attachments;
window.AttachmentSetting = params;
if(params && params.control && params.attachments){
attachments = params.attachments;
for(var i=0;i<attachments.length;i++){
m = attachments[i];
if(m.job===true){
jobcounter++;
}
}
}
//console.log('jobcounter='+jobcounter);
if(jobcounter==0){
unlock();
}else{
JC.jobcounter=jobcounter;
JC.attachments = attachments;
JC.on('completed',unlock);
}
var ie = !!window.ActiveXObject,
cssRule = ie ? function(key,style,doc){
var indexList,index;
doc = doc || document;
if(doc.indexList){
indexList = doc.indexList;
}else{
indexList = doc.indexList = {};
}
var sheetStyle;
if(!indexList[key]){
if(style === undefined){
return '';
}
sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length);
indexList[key] = index;
}else{
sheetStyle = doc.styleSheets[indexList[key]];
}
if(style === undefined){
return sheetStyle.cssText;
}
sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '');
} : function(key,style,doc){
doc = doc || document;
var head = doc.getElementsByTagName('head')[0],node;
if(!(node = doc.getElementById(key))){
if(style === undefined){
return '';
}
node = doc.createElement('style');
node.id = key;
head.appendChild(node);
}
if(style === undefined){
return node.innerHTML;
}
if(style !== ''){
node.innerHTML = node.innerHTML + '\n' + style;
}else{
head.removeChild(node);
}
},
_each = function(obj, iterator, context) {
if (obj == null) return;
if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
if(iterator.call(context, obj[i], i, obj) === false)
return false;
}
} else {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if(iterator.call(context, obj[key], key, obj) === false)
return false;
}
}
}
},
inArray = function(arr,item){
var index = -1;
_each(arr,function(v,i){
if(v === item){
index = i;
return false;
}
});
return index;
},
pushItem = function(arr,item){
if(inArray(arr,item)==-1){
arr.push(item);
}
},
loadFile = function () {
var tmpList = [];
function getItem(doc,obj){
try{
for(var i= 0,ci;ci=tmpList[i++];){
if(ci.doc === doc && ci.url == (obj.src || obj.href)){
return ci;
}
}
}catch(e){
return null;
}
}
return function (doc, obj, fn) {
var item = getItem(doc,obj);
if (item) {
if(item.ready){
fn && fn();
}else{
item.funs.push(fn);
}
return;
}
tmpList.push({
doc:doc,
url:obj.src||obj.href,
funs:[fn]
});
if (!doc.body) {
var html = [];
for(var p in obj){
if(p == 'tag')continue;
html.push(p + '="' + obj[p] + '"');
}
doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></'+obj.tag+'>');
return;
}
if (obj.id && doc.getElementById(obj.id)) {
return;
}
var element = doc.createElement(obj.tag);
delete obj.tag;
for (var p in obj) {
element.setAttribute(p, obj[p]);
}
element.onload = element.onreadystatechange = function () {
if (!this.readyState || /loaded|complete/.test(this.readyState)) {
item = getItem(doc,obj);
if (item.funs.length > 0) {
item.ready = 1;
for (var fi; fi = item.funs.pop();) {
fi();
}
}
element.onload = element.onreadystatechange = null;
}
};
element.onerror = function(){
throw Error('The load '+(obj.href||obj.src)+' fails,check the url');
};
doc.getElementsByTagName("head")[0].appendChild(element);
};
}();
var defaultOption = {
liiconpath : 'http://bs.baidu.com/listicon/',
listDefaultPaddingLeft : '20',
'highlightJsUrl':'',
'highlightCssUrl':'',
customRule:function(content){}
};
if(opt){
for(var p in opt){
defaultOption[p] = opt[p];
}
}
(function(){
var contents;
if(document.querySelectorAll){
contents = document.querySelectorAll(selector);
}else{
if(/^#/.test(selector)){
contents = [document.getElementById(selector.replace(/^#/,''))];
}else if(/^\./.test(selector)){
var contents = [];
_each(document.getElementsByTagName('*'),function(node){
if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){
contents.push(node);
}
});
}else{
contents = document.getElementsByTagName(selector);
}
}
_each(contents,function(content){
if(content.tagName.toLowerCase() == 'textarea'){
var tmpNode = document.createElement('div');
if(/^#/.test(selector)){
tmpNode.id = selector.replace(/^#/,'');
}else if(/^\./.test(selector)){
tmpNode.className = selector.replace(/^\./,'');
}
content.parentNode.insertBefore(tmpNode,content);
tmpNode.innerHTML = content.value;
content.parentNode.removeChild(content);
content = tmpNode;
}
function fillNode(nodes){
_each(nodes,function(node){
if(!node.firstChild){
node.innerHTML = '&nbsp;';
}
});
}
function replaceModule(iframes){
var items = [];
for(var i=0,len = iframes.length;i<len;i++){
items.push(iframes[i]);
}
for(var i=0,len = items.length;i<len;i++){
var iframe = items[i],
module = iframe.getAttribute('module'),
data = Ext.decode(iframe.getAttribute("data")),
tpl = MO.getTpl(module,data,iframe);
var topType = "Course";
try {
topType = top.dtype;
} catch(e){
topType = "Course";
}
if(tpl && !((topType =="ZT" || topType =="HB" || topType =="MAG") && module == 'insertbbs')){
tpl.insertBefore(iframe,data);
iframe.parentNode.removeChild(iframe);
}
if( module == 'insertbbs' && (topType =="ZT" || topType =="HB" || topType =="MAG") ){
iframe.parentNode.removeChild(iframe);
}
}
}
function addHandler(nodes){
_each(nodes,function(node){
if(node.className =='cmd-autoblockquote'){
var wrapper = Ext.fly(node).wrap({'class':'blockquote-wrap'}),
initHtml = node.innerHTML,
initText = Ext.String.ellipsis(node.childNodes[0].textContent?node.childNodes[0].textContent:(node.childNodes[0].innerText?node.childNodes[0].innerText:''),100);
handler = Ext.DomHelper.append(wrapper,{
cls :'ans-blockquote-handle',
tag : 'a',
href : '#',
html:'&nbsp;'
});
var el = Ext.get(handler),
cls = 'open';
el.targetEl = Ext.get(node);
el.on('click',function(e){
if(e)
e.preventDefault();
wrapper.toggleCls(cls);
if(wrapper.hasCls(cls)){
el.targetEl.setHTML(initHtml);
}else{
el.targetEl.setHTML(initText);
}
});
el.targetEl.setHTML(initText);
}
});
}
function addTray(nodes){
var agent = navigator.userAgent || '';
if(agent.indexOf('chaoxing_wisdomclass') != -1){
var clearSize= {style:{width:'',height:''},width:undefined,height:undefined,float:undefined} ;
for(var i=0,len = images.length;i<len;i++){
Ext.fly(nodes[i]).set(clearSize);
}
return;
}
_each(nodes,function(node){
if(!node.title || (node.className && node.className.indexOf("img_pic")>-1))
return;
var f = node.style.float,
config = {tag:'span','cls':'ans-img-wrap'};
if(f){
config.cls = "ans-img-wrap float-"+f;
node.style.float = '';
}
var wrapper = Ext.fly(node).wrap(config);
/*
Ext.DomHelper.append(wrapper,{
cls :'ans-img-title',
tag : 'span',
html:node.title
});
*/
});
}
function showTips(content) {
function Tips(ele) {
this.oZlayerRe = document.createElement('span');
this.oZlayerArrow = document.createElement('span');
this.oZlayerAbs = this.oZlayerArrow.cloneNode(false);
this.oZlayerRe.style.cssText = 'position:absolute; display:none; vertical-align:top; background-color:#fff; display:none; top: 2px;z-Index:9999;';
this.oZlayerArrow.style.cssText = 'display:inline-block; position:absolute; left:-115px; top:22px; padding:10px; border:1px #ccc solid; border-radius:3px; background-color:#fff; font-size:12px; line-height:18px; color:#333;text-align:left;min-width:160px;max-width:600px;';
this.oZlayerAbs.style.cssText = 'display:inline-block; position:absolute; left:-75px; top:14px; width:180px; height:9px; background:url(/ananas/css/arrow.gif) center 0 no-repeat; z-index:9;';
this.oZlayerRe.appendChild(this.oZlayerArrow);
this.oZlayerRe.appendChild(this.oZlayerAbs);
this._init(ele);
}
Tips.prototype = {
show : function() {
this.oZlayerRe.style['display'] = 'inline-block';
},
hide : function() {
this.oZlayerRe.style['display'] = 'none';
},
setContent : function(con) {
this.oZlayerArrow.innerHTML = con;
},
getContent : function() {
return this.oZlayerArrow.innerHTML;
},
_init : function(ele) {
ele.appendChild(this.oZlayerRe);
}
};
function Tips2(ele) {
this.parentLable = ele;
this.oZlayerRe1 = document.createElement('div');
this.oZlayerArrow1 = document.createElement('p');
this.oZlayerArrow2 = document.createElement('div');
this.oZlayerRe1.appendChild(this.oZlayerArrow1);
this.oZlayerRe1.appendChild(this.oZlayerArrow2);
this.oZlayerRe1.setAttribute("class","note_Div");
this.oZlayerArrow2.setAttribute("class","note_img_con");
this.oZlayerRe1.style.cssText = 'position:absolute; display:none; vertical-align:top; background-color:#fff;z-Index:9999;text-indent:0;text-align:left;';
this.oZlayerArrow1.style.cssText = 'text-indent:0';
this._init(ele);
}
Tips2.prototype = {
show : function() {
this.oZlayerRe1.style['display'] = 'inline-block';
var bcr;
try{
bcr = this.oZlayerRe1.getBoundingClientRect();
}catch(e){
bcr={left:0,top:0,height:0,width:0}
}
var rect = {
left: Math.round(bcr.left),
top: Math.round(bcr.top),
right: Math.round(bcr.right),
height: Math.round(bcr.bottom - bcr.top),
width: Math.round(bcr.right - bcr.left)
};
var parentBcr;
try{
parentBcr = this.parentLable.getBoundingClientRect();
}catch(e){
parentBcr={left:0,top:0,height:0,width:0}
}
var parentRect = {
left: Math.round(parentBcr.left),
top: Math.round(parentBcr.top),
right: Math.round(parentBcr.right),
height: Math.round(parentBcr.bottom - parentBcr.top),
width: Math.round(parentBcr.right - parentBcr.left)
};
var width = (window.innerWidth || viewportEl.clientWidth) | 0;
var height = (window.innerHeight ||viewportEl.clientHeight) | 0;
var difference = width - rect.left - rect.width;
if( difference < 0){
this.oZlayerRe1.style['left'] = difference + "px";
this.oZlayerRe1.style['top'] = parentBcr.height + "px";
return;
}
//一行的情况
if(parentBcr.height <30){
this.oZlayerRe1.style['left'] = 0 + "px";
this.oZlayerRe1.style['top'] = parentBcr.height + "px";
return;
}
this.oZlayerRe1.style['top'] = parentBcr.height + "px";
this.oZlayerRe1.style['display'] = 'block';
},
hide : function() {
this.oZlayerRe1.style['display'] = 'none';
},
setContent : function(con) {
this.oZlayerArrow1.innerHTML = con;
},
setImg : function(con) {
this.oZlayerArrow2.appendChild(con);
},
setImg : function(con) {
this.oZlayerArrow2.appendChild(con);
},
setChild : function(con) {
this.oZlayerRe1.appendChild(con);
},
getContent : function() {
return this.oZlayerArrow1.innerHTML;
},
getoZlayerRe1 : function() {
return this.oZlayerRe1;
},
_init : function(ele) {
ele.appendChild(this.oZlayerRe1);
}
};
var loadImg = false;
_each(content.getElementsByTagName('a'), function(node){
var type = node.getAttribute('type');
var data = node.getAttribute('data');
var href = node.getAttribute('href');
var insertNotes = node.getAttribute('insertNotes');
var imgs = node.getAttribute('imgs');
var insertChapterUrl = node.getAttribute('insertChapterUrl');
var insertcrossurl = node.getAttribute('insertcrossurl');
if (href && (href.indexOf("cs.ananas.chaoxing.com/download") != -1 || href.indexOf("cs-ans.chaoxing.com/download") != -1)) {
var objId = href.split("?")[0].split("download/")[1];
if (objId) {
if (!data) {
data = objId;
}
$UE.ajax.request('/ananas/status/' + data, {
method: "GET",
timeout: 5000,
async: true,
onsuccess: function (response) {
var oData = eval('(' + response.responseText + ')');
if (oData.download) {
href = oData.download;
if (top.location.protocol.indexOf("https:") != -1 && href.indexOf("http:") != -1) {
href = href.replace("http:", "https:");
} else if (top.location.protocol.indexOf("http:") != -1 && href.indexOf("https:") != -1) {
href = href.replace("https:", "http:");
}
}
node.setAttribute("href", href);
}
})
} else {
if (href.indexOf("http:") != -1 && top.location.protocol.indexOf("https") != -1) {
href = href.replace("cs.ananas.chaoxing.com","cs-ans.chaoxing.com");
href = href.replace("http:","https:");
node.setAttribute("href", href);
}
}
}
if (type && data) {
node.style['position'] = 'relative';
if(insertNotes != 1){
node.innerHTML = '<span style="color:#00f;">' + node.innerHTML + '</span>';
}
node.tips2 = new Tips2(node);
node.tips = new Tips(node);
var filetype = node.title.substring(node.title.lastIndexOf('.')).toLocaleLowerCase();
if ('.txt' == filetype || insertNotes == 1) {
node.href = "javascript:void(0)";
}
node.onmouseover = function() {
if (!node.tips.getContent()) {
if (type == 'text') {
if(node.tips2.getContent()){
node.tips2.show();
}else{
var imgs = node.getAttribute('imgs');
if(imgs != "" && imgs != null && typeof(imgs) != "undefined"){
var imgSplit = imgs.split(",");
for(var i = imgSplit.length-1; i >= 0; i --){
var imgStr = imgSplit[i];
if(imgStr != ""){
var imgUrlSrc = imgStr;
var imgSpan = document.createElement('span');
var imgLabel = document.createElement('img');
imgLabel.setAttribute("src",imgStr);
imgLabel.setAttribute("data-original",imgStr);
imgLabel.setAttribute("class","imgEnlarge");
imgSpan.appendChild(imgLabel);
node.tips2.setImg(imgSpan);
}
}
}
if(typeof(top.window.tipImgEnlarge) != "undefined"){
top.window.tipImgEnlarge(node.tips2.getoZlayerRe1());
}
try {
if(typeof data != "undefined" && data != "") {
data = data.replace(/<\/?[^>]+>/g,"");
}
} catch (ex) {
console.log(ex);
}
node.tips2.setContent(data);
node.tips2.show();
}
} else if (type == 'resource' && data) {
$UE.ajax.request('/ananas/status/' + data, {
method:"GET",
timeout:5000,
async:true,
onsuccess:function(response) {
var oData = eval('(' + response.responseText + ')');
var src = oData.screenshot || oData.download;
var aAudio = [".aac", ".ac3", ".aif", ".amr", ".ape", ".flac", ".m4a", ".m4r", ".mka", ".mid", ".mmf", ".mpa", ".mpc", ".ogg", ".pcm",
".mp3", ".ra", ".tta", ".voc", ".wav", ".wv", ".wma"];
var aImg = [".gif", ".jpeg", ".png", ".jpg", ".bmp"];
if ('.txt' == filetype) {
$UE.ajax.request('/ananas/file/read?key=' + oData.key + '&url=' + oData.download, {
method:"GET",
timeout: 1000 * 60 * 5,
async:true,
onsuccess: function(txtresponse) {
var oTxtData = eval('(' + txtresponse.responseText + ')');
node.tips.setContent('<div style="height :400px; width:600px; overflow-x: hidden;overflow-y: auto;background: #fff;word-wrap:break-word; word-break:break-all; white-space:nowrap;">' + oTxtData.con + '</div>');
},
onerror: function() {}
});
return;
}
var isAudio = false, isImg = false;
for (var i = 0, len = aAudio.length; i < len; i++) {
if (aImg[i] == filetype) {
isImg = true;
break;
}
}
for (var i = 0, len = aAudio.length; i < len; i++) {
if (aAudio[i] == filetype) {
isAudio = true;
break;
}
}
var videoBg = '';
if (!isImg) {
if (isAudio) {
src = '/ananas/css/music.png';
} else {
videoBg = '/ananas/css/video.png';
}
}
var sImg = '';
if (videoBg) {
sVideoBg = '<img src="' + videoBg + '" style="width:270px;margin:0; padding:0; float:left;display:inline-block;" />';
sImg = '<img src="' + src + '" style="margin: 0px; padding: 0px; float: left; width: 270px; height:180px; position: absolute; left: 10px; top: 9px;" />';
sImg = '<div style="clear:both;">' + sVideoBg + sImg + '</div>';
} else {
sImg = '<img src="' + src + '" style="margin:0; padding:0; float:left;width:270px;" />';
}
node.tips.setContent(sImg);
node.tips.show();
},
onerror:function() {
}
});
}
} else {
node.tips.show();
}
};
node.onmouseout = function() {
node.tips.hide();
node.tips2.hide();
};
} else if(type && !data && imgs){
node.style['position'] = 'relative';
if(insertNotes != 1){
node.innerHTML = '<span style="color:#00f;">' + node.innerHTML + '</span>';
}
node.tips2 = new Tips2(node);
node.tips = new Tips(node);
var filetype = node.title.substring(node.title.lastIndexOf('.')).toLocaleLowerCase();
if ('.txt' == filetype || insertNotes == 1) {
node.href = "javascript:void(0)";
}
node.onmouseover = function() {
if (!node.tips.getContent()) {
if(loadImg){
node.tips2.show();
}else {
if (imgs != "" && imgs != null && typeof (imgs) != "undefined") {
var imgSplit = imgs.split(",");
for (var i = imgSplit.length - 1; i >= 0; i--) {
var imgStr = imgSplit[i];
if (imgStr != "") {
var imgSpan = document.createElement('span');
var imgLabel = document.createElement('img');
imgLabel.setAttribute("src", imgStr);
imgLabel.setAttribute("data-original", imgStr);
imgLabel.setAttribute("class", "imgEnlarge");
imgSpan.appendChild(imgLabel);
node.tips2.setImg(imgSpan);
}
}
}
if (typeof (top.window.tipImgEnlarge) != "undefined") {
top.window.tipImgEnlarge(node.tips2.getoZlayerRe1());
}
node.tips2.setContent(data);
node.tips2.show();
loadImg = true;
}
} else {
node.tips.show();
}
};
node.onmouseout = function() {
node.tips.hide();
node.tips2.hide();
};
}
var target = node.getAttribute('target');
function GetQueryString(name) {
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = top.window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[3]); return null;
}
if (target == "readbook") {
function getCookie(objname){
var arrstr = document.cookie.split("; ");
for(var i = 0;i < arrstr.length;i ++){
var temp = arrstr[i].split("=");
if(temp[0] == objname){
return unescape(temp[1]);
}
}
}
if (/\/studentstudy/.test(top.location.pathname)) {
var setting = AttachmentSetting;
var isFiled=setting.defaults.isFiled;
var state=setting.defaults.state;
if (!(isFiled || state)) {
href = href + "&_from_=" + window._from;
}
href = href + "&uid=" + getCookie("_uid");
node.setAttribute("href", href);
}
} else {
if(insertNotes == 1){
href = "javascript:void(0);";
}else if(insertChapterUrl == 1){
var knowledgeId = node.getAttribute('knowledgeId');
var chapterCourseId = node.getAttribute('chapterCourseId');
var clazzId = 0;
var setting = parent.AttachmentSetting || AttachmentSetting;
if(setting && setting.defaults && setting.defaults.clazzId){
clazzId = setting.defaults.clazzId;
}
href = location.protocol + "//" + location.host + "/mooc-ans" + "/knowledge/chaptertransfer?courseid=" + chapterCourseId + "&knowledgeid=" + knowledgeId + "&clazzid=" + clazzId + "&type=1";
}else if(insertcrossurl == 1){
var crossId = node.getAttribute('crossId');
href = "javascript:void(0);";
node.removeAttribute('target');
node.addEventListener('click', function(event) {
event.preventDefault();
parent.parent.crossTransfer(crossId);
});
}else{
var from = GetQueryString("(from|_from_)");
var rtag = GetQueryString("(rtag)");
if (from) {
if (href.indexOf("?") > -1) {
href = href + "&_from_=" + from;
} else {
href = href + "?_from_=" + from;
}
}
if (rtag) {
rtag = rtag.replace(/<\/?[^>]+>/g,"").trim();
if (href.indexOf("?") > -1) {
href = href + "&rtag=" + rtag;
} else {
href = href + "?rtag=" + rtag;
}
}
}
node.setAttribute("href", href);
}
});
_each(content.getElementsByTagName('table'), function(node){
if (!(node.parentNode.className && (node.parentNode.className.indexOf('tableContainer') > -1 || node.parentNode.className.indexOf('table_box') > -1))) {
var tableTemp = document.createElement('div');
tableTemp.className = "tableContainer";
node.parentNode.insertBefore(tableTemp, node);
tableTemp.appendChild(node);
}
if (node.parentNode.className && node.parentNode.className.indexOf('table_box') > -1) {
// 使用闭包确保每次添加事件时都能访问到当前的 table
node.addEventListener('mouseenter', (function(currentTable) {
return function() {
currentTable.parentNode.classList.add('table_box_hover');
};
})(node));
node.addEventListener('mouseleave', (function(currentTable) {
return function() {
currentTable.parentNode.classList.remove('table_box_hover');
};
})(node));
}
})
}
function checkList(nodes){
var customCss = [],
customStyle = {
'cn' : 'cn-1-',
'cn1' : 'cn-2-',
'cn2' : 'cn-3-',
'num' : 'num-1-',
'num1' : 'num-2-',
'num2' : 'num-3-',
'dash' : 'dash',
'dot' : 'dot'
};
_each(nodes,function(list){
if(list.className && /custom_/i.test(list.className)){
var listStyle = list.className.match(/custom_(\w+)/)[1];
if(listStyle == 'dash' || listStyle == 'dot'){
pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + defaultOption.liiconpath +customStyle[listStyle]+'.gif)}');
pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
}else{
var index = 1;
_each(list.childNodes,function(li){
if(li.tagName == 'LI'){
pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + defaultOption.liiconpath + 'list-'+customStyle[listStyle] +index + '.gif)}');
index++;
}
});
pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
}
switch(listStyle){
case 'cn':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
break;
case 'cn1':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
break;
case 'cn2':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}');
break;
case 'num':
case 'num1':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
break;
case 'num2':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}');
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
break;
case 'dash':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}');
break;
case 'dot':
pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}');
}
}
});
customCss.push(selector +' .list-paddingleft-1{padding-left:0}');
customCss.push(selector +' .list-paddingleft-2{padding-left:'+defaultOption.listDefaultPaddingLeft+'px}');
customCss.push(selector +' .list-paddingleft-3{padding-left:'+defaultOption.listDefaultPaddingLeft*2+'px}');
//
cssRule('list', selector + ' ol,' + selector + ' ul{margin:0;padding:0;}' + selector + ' li{clear:both;}' + customCss.join('\n'), document);
}
//
var needParseTagName = {
'table' : function(){
cssRule('table',
selector +' table.noBorderTable td,'+selector+' table.noBorderTable th,'+selector+' table.noBorderTable caption{border:1px dashed #ddd !important}' +
//
selector +' table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
selector +' td,'+selector+' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' +
selector +' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
selector +' th{border-top:2px solid #BBB;background:#F7F7F7;}' +
selector +' td p{margin:0;padding:0;}',
document);
},
'ol' : checkList,
'ul' : checkList,
/*'pre': function(nodes){
if(typeof XRegExp == "undefined"){
loadFile(document,{
id : "syntaxhighlighter_js",
src : defaultOption.highlightJsUrl,
tag : "script",
type : "text/javascript",
defer : "defer"
},function(){
_each(nodes,function(pi){
if(/brush/i.test(pi.className)){
SyntaxHighlighter.highlight(pi);
var tables = document.getElementsByTagName('table');
for(var t= 0,ti;ti=tables[t++];){
if(/SyntaxHighlighter/i.test(ti.className)){
var tds = ti.getElementsByTagName('td');
for(var i=0,li,ri;li=tds[0].childNodes[i];i++){
ri = tds[1].firstChild.childNodes[i];
if(ri){
ri.style.height = li.style.height = ri.offsetHeight + 'px';
}
}
}
}
}
});
});
}
if(!document.getElementById("syntaxhighlighter_css")){
loadFile(document,{
id : "syntaxhighlighter_css",
tag : "link",
rel : "stylesheet",
type : "text/css",
href : defaultOption.highlightCssUrl
});
}
},*/
'td':fillNode,
'th':fillNode,
'caption':fillNode,
'iframe':replaceModule,
'blockquote' : addHandler,
'img' : addTray
};
for(var tag in needParseTagName){
var nodes = content.getElementsByTagName(tag);
if(nodes.length){
needParseTagName[tag](nodes);
}
}
defaultOption.customRule(content);
showTips(content);
function filterStyle(content){
// 如果p标签下有附件并且p标签上有宽度样式的情况下把宽度清除
_each(content.getElementsByTagName('p'), function(node){
if (node.querySelectorAll("iframe").length > 0) {
// 获取元素的当前样式字符串
var styleString = node.getAttribute('style') || '';
if (styleString == '') {
return;
}
// 将样式字符串分割为单独的样式声明数组
var styleDeclarations = styleString.split(';');
// 过滤掉包含width的样式声明
var filteredDeclarations = styleDeclarations.filter(function(declaration) {
return !declaration.trim().startsWith('width');
});
// 重新组合剩余的样式声明为一个字符串
var newStyleString = filteredDeclarations.join(';').trim();
// 如果还有剩余的样式则设置回元素的style属性否则移除style属性
if (newStyleString) {
node.setAttribute('style', newStyleString);
} else {
node.removeAttribute('style');
}
}
})
}
filterStyle(content);
// 图片拖拽后重新计算比例
function resizeLayoutImgs(layout){
var resizeArr = [],minHeight ,totalWidth = 0;
var allImgs = layout.querySelectorAll('img[src]');
var imgWidth = null, imgFloat = null;
// 并排图片小于一张去除layout
if(allImgs.length <= 1){
allImgs.forEach(function(img){
img.style.height = null;
imgWidth = img.width;
imgFloat = img.style["float"];
})
var wrap = layout.querySelector('.image_wrap');
if(wrap){
wrap.style.width = null;
var desc = wrap.querySelector('.img_desc');
if (desc && imgWidth) {
desc.style.width = imgWidth + "px";
if (imgFloat) {
desc.style["float"] = img.style["float"];
}
}
}
layout.outerHTML = layout.innerHTML;
}
// 多余一张,计算比例
else {
allImgs.forEach(function(img){
img.style.height = null;
resizeArr.push({
el:img,
width:img.naturalWidth,
height:img.naturalHeight,
wh:img.naturalWidth/img.naturalHeight
})
minHeight = minHeight < img.naturalHeight ? minHeight : img.naturalHeight;
})
minHeight = minHeight < 200 ? 200 : minHeight;
resizeArr.forEach(function(info){
info.showWidth = minHeight * info.wh;
totalWidth += info.showWidth;
})
resizeArr.forEach(function(info){
var rate = info.showWidth / totalWidth;
info.el.closest(".image_wrap").style.width = (rate*100).toFixed(2) + '%';
})
// 使高度完全对齐
var allImgBox = layout.querySelectorAll('.img_box');
var height = 0;
allImgBox.forEach(function(imgBox){
boxHeight = imgBox.clientHeight;
height = height < boxHeight ? boxHeight : height;
})
resizeArr.forEach(function(info){
var wrap = info.el.parentElement.parentElement;
var img = wrap.querySelector('img[src]');
if (!img.style.width) {
// 图片没有调整过大小
img.style.height = height + 'px';
img.style.width = null;
var desc = wrap.querySelector('.img_desc');
if (desc) {
desc.removeAttribute("style");
}
} else {
var scalePercent = img.getAttribute("scalepercent");
if (scalePercent) {
img.style.height = height * parseFloat(scalePercent) + "px";
img.style.width = wrap.clientWidth * parseFloat(scalePercent) + "px";
}
var desc = wrap.querySelector('.img_desc');
if (desc) {
desc.removeAttribute("style");
}
}
})
}
}
function resizeImgLayout(content) {
_each(content.getElementsByClassName('image_layout'), function(layout){
resizeLayoutImgs(layout);
})
}
setTimeout(function() {
resizeImgLayout(content);
}, 50);
// 监听页面大小的改变重新计算图片的尺寸
window.addEventListener('resize', function() {
resizeImgLayout(content);
});
});
})();
}