@cocreate/utils 1.7.6 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/index.js +17 -32
- package/src/index.old.js +56 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.8.0](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.7.6...v1.8.0) (2022-07-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* queryDocumentSelectorAll - ability to query iframes and parent of iframes ([90bd26b](https://github.com/CoCreate-app/CoCreate-utils/commit/90bd26b139a6a5413ac67a92504cf533f10e0838))
|
|
7
|
+
|
|
1
8
|
## [1.7.6](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.7.5...v1.7.6) (2022-06-27)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -120,29 +120,7 @@ export function domParser(str) {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
export function
|
|
124
|
-
let selectorArray = [];
|
|
125
|
-
if (selector) {
|
|
126
|
-
let selectors = [selector];
|
|
127
|
-
if(selector.indexOf(',') !== -1){
|
|
128
|
-
selectors = selector.split(',');
|
|
129
|
-
}
|
|
130
|
-
for (let selector of selectors){
|
|
131
|
-
let els;
|
|
132
|
-
if(selector.indexOf(';') !== -1) {
|
|
133
|
-
let [documentSelector, targetSelector] = selector.split(';');
|
|
134
|
-
let frame = document.querySelector(documentSelector);
|
|
135
|
-
if (frame)
|
|
136
|
-
selectorArray.push({Document: frame.contentDocument, selector: targetSelector});
|
|
137
|
-
}
|
|
138
|
-
else
|
|
139
|
-
selectorArray.push({Document: document, selector: selector});
|
|
140
|
-
}
|
|
141
|
-
return selectorArray;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export function queryFrameSelectorAll(selector) {
|
|
123
|
+
export function queryDocumentSelectorAll(selector) {
|
|
146
124
|
let elements = [];
|
|
147
125
|
|
|
148
126
|
if (selector) {
|
|
@@ -153,16 +131,22 @@ export function queryFrameSelectorAll(selector) {
|
|
|
153
131
|
for (let selector of selectors){
|
|
154
132
|
let els;
|
|
155
133
|
if(selector.indexOf(';') !== -1) {
|
|
134
|
+
let targetDocument;
|
|
156
135
|
let [documentSelector, targetSelector] = selector.split(';');
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
136
|
+
if (['parent', 'parentDocument'].includes(documentSelector))
|
|
137
|
+
targetDocument = window.parent.document;
|
|
138
|
+
else {
|
|
139
|
+
let frame = document.querySelector(documentSelector);
|
|
140
|
+
if (frame)
|
|
141
|
+
targetDocument = frame.contentDocument;
|
|
142
|
+
}
|
|
143
|
+
if (targetDocument){
|
|
144
|
+
if (targetSelector)
|
|
145
|
+
els = targetDocument.querySelectorAll(targetSelector);
|
|
146
|
+
else
|
|
147
|
+
if (targetDocument.clickedElement)
|
|
148
|
+
els = [targetDocument.clickedElement];
|
|
149
|
+
}
|
|
166
150
|
}
|
|
167
151
|
else
|
|
168
152
|
els = document.querySelectorAll(selector);
|
|
@@ -202,5 +186,6 @@ export default {
|
|
|
202
186
|
parseTextToHtml,
|
|
203
187
|
cssPath,
|
|
204
188
|
domParser,
|
|
189
|
+
queryDocumentSelectorAll,
|
|
205
190
|
queryFrameSelectorAll
|
|
206
191
|
};
|
package/src/index.old.js
CHANGED
|
@@ -371,7 +371,62 @@ async function complexSelector(comSelector, callback) {
|
|
|
371
371
|
return true;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
export function getFrameSelector(selector) {
|
|
375
|
+
let selectorArray = [];
|
|
376
|
+
if (selector) {
|
|
377
|
+
let selectors = [selector];
|
|
378
|
+
if(selector.indexOf(',') !== -1){
|
|
379
|
+
selectors = selector.split(',');
|
|
380
|
+
}
|
|
381
|
+
for (let selector of selectors){
|
|
382
|
+
let els;
|
|
383
|
+
if(selector.indexOf(';') !== -1) {
|
|
384
|
+
let [documentSelector, targetSelector] = selector.split(';');
|
|
385
|
+
let frame = document.querySelector(documentSelector);
|
|
386
|
+
if (frame)
|
|
387
|
+
selectorArray.push({Document: frame.contentDocument, selector: targetSelector});
|
|
388
|
+
}
|
|
389
|
+
else
|
|
390
|
+
selectorArray.push({Document: document, selector: selector});
|
|
391
|
+
}
|
|
392
|
+
return selectorArray;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
export function queryFrameSelectorAll(selector) {
|
|
396
|
+
let elements = [];
|
|
397
|
+
|
|
398
|
+
if (selector) {
|
|
399
|
+
let selectors = [selector];
|
|
400
|
+
if(selector.indexOf(',') !== -1){
|
|
401
|
+
selectors = selector.split(',');
|
|
402
|
+
}
|
|
403
|
+
for (let selector of selectors){
|
|
404
|
+
let els;
|
|
405
|
+
if(selector.indexOf(';') !== -1) {
|
|
406
|
+
let [documentSelector, targetSelector] = selector.split(';');
|
|
407
|
+
let frame = document.querySelector(documentSelector);
|
|
408
|
+
if (frame) {
|
|
409
|
+
let targetDocument = frame.contentDocument;
|
|
410
|
+
if (targetSelector)
|
|
411
|
+
els = targetDocument.querySelectorAll(targetSelector);
|
|
412
|
+
else
|
|
413
|
+
if (targetDocument.clickedElement)
|
|
414
|
+
els = [targetDocument.clickedElement];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
else
|
|
418
|
+
els = document.querySelectorAll(selector);
|
|
419
|
+
if (els){
|
|
420
|
+
els = Array.prototype.slice.call(els);
|
|
421
|
+
elements = elements.concat(els);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
return elements;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
375
430
|
export default {
|
|
376
431
|
getElementPath,
|
|
377
432
|
isValidSelector,
|