소스 검색

fixed compatibility with IE8

Signed-off-by: Gerald <gera2ld@163.com>
Gerald 10 년 전
부모
커밋
e2e4d3eb76
4개의 변경된 파일19개의 추가작업 그리고 39개의 파일을 삭제
  1. 10 6
      README.md
  2. 1 1
      dist/duoshuo-ua-with-css.min.js
  3. 1 1
      dist/duoshuo-ua.min.js
  4. 7 31
      src/duoshuo-ua.js

+ 10 - 6
README.md

@@ -15,17 +15,20 @@ duoshuoQuery中可以定义`myIds`和`getUAString`函数:
 <html>
 <head>
 
-<!-- 第1部分:在embed.js之前加载duoshuo-ua.min.js -->
+<!-- 第1部分:必须写在后2部分的前面 -->
+<script>var duoshuoQuery={short_name:'test',myIds:[1234567]};</script>
+
+<!-- 第2部分:加载duoshuo-ua.min.js -->
 <script src=dist/duoshuo-ua.min.js></script>
 
-<!-- 第2部分:也可写成异步加载,请写在第1部分后面 -->
-<script>var duoshuoQuery={short_name:'test',myIds:[1234567]};</script>
+<!-- 第3部分:也可写成异步加载,请写在第2部分后面 -->
 <script src=http://static.duoshuo.com/embed.js></script>
 
 </head>
 <body>
 
-<div class="ds-thread" data-thread-key="example"></div>
+<!-- 第4部分:注意class是“ds-thread-ua”! -->
+<div class="ds-thread-ua" data-thread-key="example"></div>
 
 </body>
 </html>
@@ -33,8 +36,9 @@ duoshuoQuery中可以定义`myIds`和`getUAString`函数:
 
 注:
 
-1. dist/duoshuo-ua.min.js是压缩后的代码,集成了CSS,无需单独加载CSS文件,如需自定义,请使用未压缩版本。
-1. 此版本使用`Object.defineProperty`,仅支持IE9+。
+1. dist/duoshuo-ua-with-css.min.js集成了CSS,无需单独加载CSS文件。
+1. 第4部分中`class="ds-thread-ua"`,将被duoshuo-ua进行识别,确保duoshuo-ua完成初始化以后再显示评论,如果是duoshuo-ua初始化以后的动态加载则应写成`class="ds-thread"`。
+1. 此版本兼容IE8。
 
 效果可参见:<http://geraldl.net/about>
 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/duoshuo-ua-with-css.min.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/duoshuo-ua.min.js


+ 7 - 31
src/duoshuo-ua.js

@@ -1,4 +1,5 @@
 /* 多说User-Agent插件
+ * 兼容版:兼容IE8
  * 作者:Gerald <gera2ld@163.com>
  * @require ua-parser.js
  */
@@ -33,35 +34,10 @@ function init(){
 		callAfter.call(this,local,args);
 		return local.result;
 	}
+	DUOSHUO.jQuery('.ds-thread-ua').removeClass('ds-thread-ua').addClass('ds-thread');
 }
-function observeProperty(item,key,callback){
-	function callbackOnce(){
-		var cb=callback;
-		if(cb) {
-			callback=null;
-			cb();
-		}
-	}
-	var value=undefined;
-	if(item[key]) callbackOnce();
-	else Object.defineProperty(item,key,{
-		get:function(){return value;},
-		set:function(val){
-			value=val;
-			callbackOnce();
-		},
-		configurable:true,
-	});
-}
-function observePropertyChain(item,keys,callback){
-	function observe(){
-		observeProperty(item,key,function(){
-			item=item[key];
-			if(key=keys.shift()) observe();
-			else callback();
-		});
-	}
-	var key=keys.shift();
-	observe();
-}
-observePropertyChain(window,['DUOSHUO','templates','post'],init);
+var ondomready=duoshuoQuery.ondomready;
+duoshuoQuery.ondomready=function(){
+	if(ondomready) ondomready();
+	init();
+};