質問編集履歴
3
エラー内容追記。誤字訂正。
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
https://www.excellence-blog.com/2018/02/02/html%E3%81%A7%E5%A4%96%E9%83%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80/
|
|
8
8
|
オブジェクトタグのdata属性にhtmlファイル名を設定しています。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
```javascript
|
|
11
11
|
#<object id="aaatext" data="aaa.html" type="text/plain" style="display:none"></object>
|
|
12
12
|
<script>
|
|
13
13
|
var obj = document.getElementById("aaatext");
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
}
|
|
18
18
|
</script>
|
|
19
19
|
|
|
20
|
+
```
|
|
20
21
|
次に、文字列をDOMとして取得する方法は下記のサイトを参考にさせて頂きました。
|
|
21
22
|
http://donsuka-kk.hatenablog.com/entry/20140228/1393596415
|
|
23
|
+
```javascript
|
|
22
24
|
( function() {"use strict";
|
|
23
25
|
|
|
24
26
|
var text = "<!DOCTYPE html>";
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
|
|
37
39
|
function getDom(txt) {
|
|
38
40
|
var htmlDoc;
|
|
39
|
-
htmlDoc = document.implementation.
|
|
41
|
+
htmlDoc = document.implementation.createHTMLDocument('dom');
|
|
40
42
|
htmlDoc.documentElement.innerHTML = txt;
|
|
41
43
|
return htmlDoc;
|
|
42
44
|
}
|
|
@@ -56,6 +58,60 @@
|
|
|
56
58
|
}
|
|
57
59
|
}());
|
|
58
60
|
|
|
61
|
+
```
|
|
59
62
|
上記の text +=の部分を最初のソースにあるloadtextに置き換えてみたのですが、上手く行きません。
|
|
60
63
|
IEではalert(loadtext)できちんとソースコードが表示されています。
|
|
61
|
-
どのように
|
|
64
|
+
どのようにcreateHTMLDocumentの引数に設定したらよいでしょうか?
|
|
65
|
+
|
|
66
|
+
10/11追加
|
|
67
|
+
以下が実際に書いたコードです。
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
<html>
|
|
71
|
+
<head>
|
|
72
|
+
<title>test</title>
|
|
73
|
+
</head>
|
|
74
|
+
<body>
|
|
75
|
+
|
|
76
|
+
<object id="ob1" type="text/html" data="sample.html">
|
|
77
|
+
</object>
|
|
78
|
+
|
|
79
|
+
<script type="text/javascript">
|
|
80
|
+
|
|
81
|
+
var obj = document.getElementById("ob1");
|
|
82
|
+
obj.onload = function() {
|
|
83
|
+
var loadtext = obj.contentDocument.documentElement.textContent;
|
|
84
|
+
//var loadtext = obj.contentDocument.documentElement.outerHTML
|
|
85
|
+
console.log(loadtext);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function getDom(txt) {
|
|
89
|
+
var htmlDoc;
|
|
90
|
+
htmlDoc = document.implementation.createHTMLDocument('dom');
|
|
91
|
+
htmlDoc.documentElement.innerHTML = txt;
|
|
92
|
+
return htmlDoc;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
var DOM = getDom(loadtext);
|
|
96
|
+
console.log(DOM.getElementById('ichiran').textContent);
|
|
97
|
+
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
102
|
+
```
|
|
103
|
+
miyabi_takatsuk 様
|
|
104
|
+
dodox86 様
|
|
105
|
+
m.ts10806 様(タグ追加の手続きは自分ではできないようですので、後程行います)
|
|
106
|
+
|
|
107
|
+
ご指摘ありがとうございます。投稿内容修正いたしましたのでご確認のほどよろしくお願いいたします。
|
|
108
|
+
|
|
109
|
+
Chromeで開いた状態で以下のエラーです。
|
|
110
|
+
|
|
111
|
+
getDom(text)のところで loadtext is not defined というエラーがでます。
|
|
112
|
+
|
|
113
|
+
documentElement.textContent;のところで documentElement' of null というエラーがでます。
|
|
114
|
+
|
|
115
|
+
IEではalertはでますが、console.logが表示されません。
|
|
116
|
+
|
|
117
|
+
ご教示のほどよろしくお願いいたします。
|
2
文字が余分に入っていた
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
どなたかご教授お願い致します。
|
|
4
4
|
|
|
5
5
|
ローカルにあるHTMLファイルをDOMとして取得し、ソースを書き換える方法を探しています。
|
|
6
|
-
まず、HTMLファイル
|
|
6
|
+
まず、HTMLファイルのソースを文字列として取得する方法として、下記サイトを参考にさせて頂きました。
|
|
7
7
|
https://www.excellence-blog.com/2018/02/02/html%E3%81%A7%E5%A4%96%E9%83%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80/
|
|
8
8
|
オブジェクトタグのdata属性にhtmlファイル名を設定しています。
|
|
9
9
|
|
1
タイトルが文字が切れていたので修正
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
を読み込み、DOMに設定する方法
|
|
1
|
+
HTMLを読み込み、DOMに設定する方法
|
body
CHANGED
|
File without changes
|