웹 제목을 사용하여 Weibo 및 일부 이메일 주소와 같은 새로운 메시지를 사용자에게 신뢰하는 것이 매우 일반적입니다. 함수를 구현하는 방법?
아이디어는 Ajax를 통해 배경에 액세스하는 것입니다. 새 메시지가 있으면 웹 페이지의 제목을 즉시 메시지로 바꾸고 공간으로 전환하십시오. 예 : [새로운 뉴스가 있습니다] 및 [] 토글. 프롬프트 내용은 동적이므로 교체 텍스트의 공간 수도 계산됩니다. 여기에서 전폭 공간을 사용하십시오. 그러나 프롬프트 메시지에 '번호'와 같은 반 세기 문자가있는 경우 문제가 발생합니다. 전체 너비의 공간은 반 폭 1의 너비보다 훨씬 넓습니다. 이런 식으로, 솔루션은 전체 너비의 캐릭터를 전체 너비의 공간으로 바꾸는 것입니다.
그러나 hap 사용하면 그대로 출력됩니다. 제목 dom 객체를 가져 와서 t.innerhtml = ''로 수정하십시오.
그러나 물론 그렇게 매끄럽게 될 것입니다. 우리의 귀여운 IE는이 시점에서 항상 문제를 일으킬 것입니다. IE 브라우저에서 제목의 내부 html은 제목뿐만 아니라 Col, Colgroup, Frameset, HTML, 스타일, 테이블, tfoot, Thead, Tr의 내부 html 속성은 읽기 전용입니다. 강제 할당이 이루어지면 "알 수없는 런타임 오류"가 발생합니다. 현재, 나는 매우 좋은 솔루션을 찾지 못했기 때문에 Try {} catch (e) {}를 추가하여 특별히 처리 할 수 있습니다.
소스 코드 공유 :
코드 사본은 다음과 같습니다.
<script type = "text/javaScript"언어 = "javaScript">
var FlashTitlePlayer = {
시작 : 기능 (msg) {
this.title = document.title;
if (! this.action) {
노력하다 {
this.element = document.getElementsByTagName ( 'title') [0];
this.element.innerhtml = this.title;
this.action = function (ttl) {
this.element.innerhtml = ttl;
};
} catch (e) {
this.action = function (ttl) {
문서 .title = ttl;
}
this.lement;
}
this.toggletitle = function () {
this.action ( '' ' + this.messages [this.index = this.index == 0? 1 : 0] +'] 간단한 현대 마술에 오신 것을 환영합니다 ");
};
}
this.messages = [msg];
var n = msg.length;
var s = '';
if (this.element) {
var num = msg.match (// w/g);
if (num! = null) {
var n2 = num.length;
n- = n2;
while (n2> 0) {
s += "";
n2--;
}
}
}
while (n> 0) {
s += '';
N--;
};
this.messages.push (s);
this.index = 0;
this.timer = setInterval (function () {
FlashTitlePlayer.toggletitle ();
}, 1000);
},
정지 : function () {
if (this.timer) {
ClearInterval (this.Timer);
this.action (this.title);
이것을 삭제하십시오.
this.messages;
}
}
};
기능 플래시 (MSG) {
FlashTitlePlayer.start (MSG);
}
함수 stopflash () {
FlashTitlePlayer.stop ();
}
</스크립트>
Firefox, Chrome에서 문제가 없으며, IE가 메시지에 반 세기의 캐릭터가 하나 또는 전혀 없다는 메시지가 표시 될 때 문제 없습니다.