質問するログイン新規登録

質問編集履歴

3

内容削除

2020/03/11 04:17

投稿

poppoas
poppoas

スコア12

title CHANGED
File without changes
body CHANGED
@@ -91,66 +91,9 @@
91
91
  try{
92
92
 
93
93
  var feed_data:Document = domParser.parseFromString(xhr.response, "text/html");
94
- feed_items = feed_data.getElementsByTagName(notice._itemTag);
94
+ feed_items = feed_data.getElementsByTagName(notice._itemTag);
95
- notice._unReadMessageCount += feed_items.length;
95
+
96
-
97
- for(var i=0;i<feed_items.length;i++){
96
+
98
-
99
- //記事タイトル取得
100
- var title: HTMLCollectionOf<HTMLTitleElement> = feed_items[i].getElementsByTagName('title');
101
-
102
- //記事のリンク取得
103
- //Atomのときはlinkタグのhrefにリンクがある
104
- if(notice._urlType == 'Atom'){
105
- var link:string = feed_items[i].getElementsByTagName('link')[0].getAttribute('href');
106
- }else{
107
- //RSS,RDFのとき(linkタグの子要素に格納されている)
108
- var link:string = feed_items[i].getElementsByTagName('link')[0].nextSibling.textContent;
109
- }
110
-
111
- //記事内容の取得
112
- var content: HTMLCollectionOf<Element> = feed_items[i].getElementsByTagName(notice._conTag);
113
- if(content == null){
114
- var contentText = "";
115
- }else{
116
- var contentText = content[0].textContent;
117
- }
118
-
119
- //記事の発行日付取得
120
- var d:HTMLCollectionOf<Element> = feed_items[i].getElementsByTagName(notice._dateTag);
121
- var date = new Date(d[0].textContent);
122
-
123
- //比較用に現在の日付を取得
124
- var nowDate = new Date();
125
- var datecomp = new Date();
126
- datecomp.setMonth(datecomp.getMonth() - 1);
127
-
128
- //過去1ヵ月以内の記事のみ表示するようにする
129
- if(date < datecomp){
130
- console.log("記事の発行から1ヵ月経っています。");
131
- }else{
132
-
133
- //取得した最新情報を保管
134
- var info = new Information(title[0].textContent, link, contentText, date, userId);
135
- notice._informations.push(info);
136
-
137
- //取得したデータをまとめる
138
- var datas = {
139
- title: title[0].textContent,
140
- link : link,
141
- content : contentText,
142
- date : date,
143
- nowDate : nowDate
144
- };
145
-
146
- //配列に最新情報を追加していく
147
- notice._dataArray.push(datas);
148
-
149
- //データベースに書き込む
150
- noticeDB.writeDB(datas, notice._dbName, notice._storeName);
151
- notice._completedFlag = true;
152
-
153
- }
154
97
  }
155
98
  }catch{
156
99
  console.log('error');
@@ -158,17 +101,6 @@
158
101
  }
159
102
  }
160
103
  }
161
-
162
- // 複数URLが設定されているときは次のURLへ最新情報を取得しにいく
104
+
163
- if(count<this._feeds.length){
164
- count++;
165
- this.getLatestInformation(this._feeds[count-1],count, userId,notice,noticeDB);
166
- }
167
105
  }
168
- ```
106
+ ```
169
-
170
- ### 試したこと
171
-
172
- アイコン描画部分の処理(var noticeIcon辺り)を
173
- htmlのonloadで画面が呼ばれた後にscriptを呼び出そうとしたが、アイコンを設定するインスタンス(notice)が、
174
- 最新情報を取得するインスタンスと別になってしまうので、うまくできなかった。(良い書き方があれば教えてください)

2

内容修正

2020/03/11 04:16

投稿

poppoas
poppoas

スコア12

title CHANGED
File without changes
body CHANGED
@@ -18,6 +18,7 @@
18
18
  ### 最終的な目標
19
19
 
20
20
  Typescriptで書いている、Ajaxの処理が全て終わってからhtml内のjavascriptで未読アイコン表示の処理を行いたいです。
21
+ UI(html)とコア部分(Typescript)はUIだけコアに依存させる形にしたいです。
21
22
 
22
23
  ### 該当のソースコード
23
24
  該当箇所のみ抜き出しています。

1

Typescriptがhtmlで定義しているNotice()の部分です

2020/03/11 00:00

投稿

poppoas
poppoas

スコア12

title CHANGED
File without changes
body CHANGED
@@ -59,6 +59,8 @@
59
59
  ```
60
60
 
61
61
  ```Typescript
62
+ Notice.ts
63
+
62
64
  loadInformations() {
63
65
  var count=0
64
66
  //最新情報を取得する