j1m_scroll 0.0.1
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.
- checksums.yaml +7 -0
- data/LICENSE.md +21 -0
- data/README.md +41 -0
- data/_data/modules/default/j1_scroll-0.0.1/j1_back2top.yml +131 -0
- data/_data/modules/default/j1_scroll-0.0.1/j1_smooth_scroll.yml +162 -0
- data/_data/resources/default/j1_scroll-0.0.1/resource.yml +43 -0
- data/assets/themes/j1/iframe_resizer/.npmignore +9 -0
- data/assets/themes/j1/iframe_resizer/.travis.yml +6 -0
- data/assets/themes/j1/iframe_resizer/CONTRIBUTING.md +86 -0
- data/assets/themes/j1/iframe_resizer/Iframe-resizer by davidjbradshaw.url +2 -0
- data/assets/themes/j1/iframe_resizer/LICENSE +21 -0
- data/assets/themes/j1/iframe_resizer/README.md +608 -0
- data/assets/themes/j1/iframe_resizer/bower.json +45 -0
- data/assets/themes/j1/iframe_resizer/example/frame.absolute.html +88 -0
- data/assets/themes/j1/iframe_resizer/example/frame.content.html +58 -0
- data/assets/themes/j1/iframe_resizer/example/frame.hover.html +51 -0
- data/assets/themes/j1/iframe_resizer/example/frame.nested.html +72 -0
- data/assets/themes/j1/iframe_resizer/example/frame.textarea.html +46 -0
- data/assets/themes/j1/iframe_resizer/example/frame.tolerance.html +79 -0
- data/assets/themes/j1/iframe_resizer/example/index.html +70 -0
- data/assets/themes/j1/iframe_resizer/example/two.html +71 -0
- data/assets/themes/j1/iframe_resizer/gruntfile.js +215 -0
- data/assets/themes/j1/iframe_resizer/iframeResizer.jquery.json +41 -0
- data/assets/themes/j1/iframe_resizer/index.js +4 -0
- data/assets/themes/j1/iframe_resizer/js/_client.js +1131 -0
- data/assets/themes/j1/iframe_resizer/js/_server.js +1126 -0
- data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.js +85 -0
- data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.map +1 -0
- data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.min.js +4 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.js +1104 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.map +1 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.min.js +10 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.js +1007 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.js.modified +1004 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.map +1 -0
- data/assets/themes/j1/iframe_resizer/js/iframeResizer.min.js +9 -0
- data/assets/themes/j1/iframe_resizer/js/index.js +2 -0
- data/assets/themes/j1/iframe_resizer/karma.conf.js +92 -0
- data/assets/themes/j1/iframe_resizer/package.json +111 -0
- data/assets/themes/j1/iframe_resizer/spec/_initSpec.js +63 -0
- data/assets/themes/j1/iframe_resizer/spec/anchorSpec.js +62 -0
- data/assets/themes/j1/iframe_resizer/spec/childSpec.js +403 -0
- data/assets/themes/j1/iframe_resizer/spec/closeSpecSpec.js +44 -0
- data/assets/themes/j1/iframe_resizer/spec/getPageInfoSpec.js +32 -0
- data/assets/themes/j1/iframe_resizer/spec/initCssSpec.js +28 -0
- data/assets/themes/j1/iframe_resizer/spec/initDomSpec.js +27 -0
- data/assets/themes/j1/iframe_resizer/spec/initDoubleCallSpec.js +33 -0
- data/assets/themes/j1/iframe_resizer/spec/initErrorSpec.js +57 -0
- data/assets/themes/j1/iframe_resizer/spec/initJQuerySpec.js +29 -0
- data/assets/themes/j1/iframe_resizer/spec/initUndefinedDomSpec.js +25 -0
- data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe.html +2 -0
- data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe600.html +4 -0
- data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe600WithId.html +4 -0
- data/assets/themes/j1/iframe_resizer/spec/lib/common.js +59 -0
- data/assets/themes/j1/iframe_resizer/spec/parentSpec.js +88 -0
- data/assets/themes/j1/iframe_resizer/spec/resources/djb.jpg +0 -0
- data/assets/themes/j1/iframe_resizer/spec/resources/frame.content.html +176 -0
- data/assets/themes/j1/iframe_resizer/spec/resources/frame.lateload.html +33 -0
- data/assets/themes/j1/iframe_resizer/spec/resources/frame.nested.html +40 -0
- data/assets/themes/j1/iframe_resizer/spec/scrollSpec.js +53 -0
- data/assets/themes/j1/iframe_resizer/spec/sendMessageSpec.js +58 -0
- data/assets/themes/j1/iframe_resizer/spec/support/jasmine.json +9 -0
- data/assets/themes/j1/iframe_resizer/src/ie8.polyfils.js +64 -0
- data/assets/themes/j1/iframe_resizer/src/iframeResizer.contentWindow.js +1123 -0
- data/assets/themes/j1/iframe_resizer/src/iframeResizer.js +1002 -0
- data/assets/themes/j1/iframe_resizer/test-main.js +33 -0
- data/assets/themes/j1/iframe_resizer/test/_init.html +44 -0
- data/assets/themes/j1/iframe_resizer/test/_init_once.html +45 -0
- data/assets/themes/j1/iframe_resizer/test/_init_once_async.html +72 -0
- data/assets/themes/j1/iframe_resizer/test/background.html +47 -0
- data/assets/themes/j1/iframe_resizer/test/changePage.html +50 -0
- data/assets/themes/j1/iframe_resizer/test/close.html +44 -0
- data/assets/themes/j1/iframe_resizer/test/getId.html +44 -0
- data/assets/themes/j1/iframe_resizer/test/interval.html +56 -0
- data/assets/themes/j1/iframe_resizer/test/jqueryNoConflict.html +47 -0
- data/assets/themes/j1/iframe_resizer/test/lateImageLoad.html +90 -0
- data/assets/themes/j1/iframe_resizer/test/margin.html +73 -0
- data/assets/themes/j1/iframe_resizer/test/mutationObserver.html +63 -0
- data/assets/themes/j1/iframe_resizer/test/nested.html +46 -0
- data/assets/themes/j1/iframe_resizer/test/resize.contentWidth.html +51 -0
- data/assets/themes/j1/iframe_resizer/test/resize.width.html +63 -0
- data/assets/themes/j1/iframe_resizer/test/resources/djb.jpg +0 -0
- data/assets/themes/j1/iframe_resizer/test/resources/frame.content.html +191 -0
- data/assets/themes/j1/iframe_resizer/test/resources/frame.lateload.html +33 -0
- data/assets/themes/j1/iframe_resizer/test/resources/frame.nested.html +40 -0
- data/assets/themes/j1/iframe_resizer/test/resources/jquery.js +6 -0
- data/assets/themes/j1/iframe_resizer/test/resources/qunit.css +244 -0
- data/assets/themes/j1/iframe_resizer/test/resources/qunit.js +2212 -0
- data/assets/themes/j1/iframe_resizer/test/resources/require.js +2103 -0
- data/assets/themes/j1/iframe_resizer/test/resources/testLib.js +9 -0
- data/assets/themes/j1/iframe_resizer/test/scrolling.html +65 -0
- data/assets/themes/j1/iframe_resizer/test/sendMessage.html +61 -0
- data/assets/themes/j1/iframe_resizer/test/setHeightCalculationMethod.html +51 -0
- data/assets/themes/j1/iframe_resizer/test/size.html +64 -0
- data/assets/themes/j1/iframe_resizer/test/v1.html +189 -0
- data/assets/themes/j1/j1/js/adapters/iframe_resizer.js +105 -0
- data/exe/console +14 -0
- data/exe/setup +8 -0
- data/lib/j1m_scroll.rb +5 -0
- data/lib/j1m_scroll/version.rb +3 -0
- metadata +190 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
function sendMessage(msg){
|
|
2
|
+
'use strict';
|
|
3
|
+
//var msgId = '[iFrameSizerTest]:';
|
|
4
|
+
|
|
5
|
+
//document.getElementsByTagName('iframe')[0].contentWindow.postMessage( msgId + msg, '*' );
|
|
6
|
+
|
|
7
|
+
//console.log('Sending '+msg);
|
|
8
|
+
document.getElementsByTagName('iframe')[0].iFrameResizer.sendMessage(msg);
|
|
9
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>QUnit LoadHide</title>
|
|
6
|
+
<link rel="stylesheet" href="resources/qunit.css">
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="qunit"></div>
|
|
10
|
+
<div id="qunit-fixture">
|
|
11
|
+
|
|
12
|
+
<div style="width:600px;">
|
|
13
|
+
<iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<script src="resources/qunit.js"></script>
|
|
18
|
+
<script src="resources/jquery.js"></script>
|
|
19
|
+
<script src="../js/iframeResizer.min.js"></script>
|
|
20
|
+
<script>
|
|
21
|
+
|
|
22
|
+
'use strict';
|
|
23
|
+
var msgId = '[iFrameSizerTest]:';
|
|
24
|
+
|
|
25
|
+
asyncTest( "scrolling not set", function() {
|
|
26
|
+
$('iframe').iFrameResize({
|
|
27
|
+
//log:true,
|
|
28
|
+
resizedCallback:function(messageData){
|
|
29
|
+
ok( true, 'Receive message back from iFrame.' );
|
|
30
|
+
ok( 'hidden' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'hidden\'.' );
|
|
31
|
+
ok( 'no' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'no\'.' );
|
|
32
|
+
start();
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
asyncTest( "scrolling = false", function() {
|
|
38
|
+
$('iframe').iFrameResize({
|
|
39
|
+
//log:true,
|
|
40
|
+
scrolling:false,
|
|
41
|
+
resizedCallback:function(messageData){
|
|
42
|
+
ok( true, 'Receive message back from iFrame.' );
|
|
43
|
+
ok( 'hidden' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'hidden\'.' );
|
|
44
|
+
ok( 'no' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'no\'.' );
|
|
45
|
+
start();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
asyncTest( "scrolling = true", function() {
|
|
51
|
+
$('iframe').iFrameResize({
|
|
52
|
+
//log:true,
|
|
53
|
+
scrolling:true,
|
|
54
|
+
resizedCallback:function(messageData){
|
|
55
|
+
ok( true, 'Receive message back from iFrame.' );
|
|
56
|
+
ok( 'auto' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'auto\'.' );
|
|
57
|
+
ok( 'yes' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'yes\'.' );
|
|
58
|
+
start();
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
</script>
|
|
64
|
+
</body>
|
|
65
|
+
</html>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>QUnit LoadHide</title>
|
|
6
|
+
<link rel="stylesheet" href="resources/qunit.css">
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="qunit"></div>
|
|
10
|
+
<div id="qunit-fixture">
|
|
11
|
+
|
|
12
|
+
<div style="width:600px;">
|
|
13
|
+
<iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<script src="resources/qunit.js"></script>
|
|
18
|
+
<script src="resources/jquery.js"></script>
|
|
19
|
+
<script src="resources/testLib.js"></script>
|
|
20
|
+
<script src="../js/ie8.polyfils.min.js"></script>
|
|
21
|
+
<script src="../js/iframeResizer.min.js"></script>
|
|
22
|
+
<script>
|
|
23
|
+
|
|
24
|
+
'use strict';
|
|
25
|
+
var
|
|
26
|
+
count = 0,
|
|
27
|
+
msgId = '[iFrameSizerTest]:';
|
|
28
|
+
|
|
29
|
+
asyncTest( "sendMessage (string)", function() {
|
|
30
|
+
|
|
31
|
+
iFrameResize({
|
|
32
|
+
//log:true,
|
|
33
|
+
resizedCallback:function(messageData){
|
|
34
|
+
ok( true, 'Receive init message back from iFrame.' );
|
|
35
|
+
sendMessage('chkSendMsg');
|
|
36
|
+
},
|
|
37
|
+
messageCallback:function(messageData){
|
|
38
|
+
ok( 'message: test string' === messageData.message, 'Receive string message back from iFrame via sendMessage function.' );
|
|
39
|
+
start();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
asyncTest( "sendMessage (object)", function() {
|
|
45
|
+
|
|
46
|
+
iFrameResize({
|
|
47
|
+
//log:true,
|
|
48
|
+
resizedCallback:function(messageData){
|
|
49
|
+
ok( true, 'Receive init message back from iFrame.' );
|
|
50
|
+
sendMessage('chkSendObj');
|
|
51
|
+
},
|
|
52
|
+
messageCallback:function(messageData){
|
|
53
|
+
ok( 'test object' === messageData.message.message, 'Receive object message back from iFrame via sendMessage function.' );
|
|
54
|
+
start();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
</script>
|
|
60
|
+
</body>
|
|
61
|
+
</html>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>QUnit LoadHide</title>
|
|
6
|
+
<link rel="stylesheet" href="resources/qunit.css">
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="qunit"></div>
|
|
10
|
+
<div id="qunit-fixture">
|
|
11
|
+
|
|
12
|
+
<div style="width:600px;">
|
|
13
|
+
<iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<script src="resources/qunit.js"></script>
|
|
18
|
+
<script src="resources/jquery.js"></script>
|
|
19
|
+
<script src="resources/testLib.js"></script>
|
|
20
|
+
<script src="../js/ie8.polyfils.min.js"></script>
|
|
21
|
+
<script src="../js/iframeResizer.min.js"></script>
|
|
22
|
+
<script>
|
|
23
|
+
|
|
24
|
+
'use strict';
|
|
25
|
+
var msgId = '[iFrameSizerTest]:';
|
|
26
|
+
|
|
27
|
+
asyncTest( "setHeightCalculationMethod", function() {
|
|
28
|
+
|
|
29
|
+
var callbackCounter = 0;
|
|
30
|
+
|
|
31
|
+
iFrameResize({
|
|
32
|
+
//log:true,
|
|
33
|
+
interval:0,
|
|
34
|
+
resizedCallback:function(messageData){
|
|
35
|
+
|
|
36
|
+
switch (''+(++callbackCounter)){
|
|
37
|
+
case '1':
|
|
38
|
+
sendMessage('setHeightCalculationMethod');
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
ok( true, 'iFrame detected content change');
|
|
42
|
+
start();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
</script>
|
|
50
|
+
</body>
|
|
51
|
+
</html>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>QUnit LoadHide</title>
|
|
6
|
+
<link rel="stylesheet" href="resources/qunit.css">
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="qunit"></div>
|
|
10
|
+
<div id="qunit-fixture">
|
|
11
|
+
|
|
12
|
+
<div style="width:400px;">
|
|
13
|
+
<iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<script src="resources/qunit.js"></script>
|
|
18
|
+
<script src="resources/jquery.js"></script>
|
|
19
|
+
<script src="../js/ie8.polyfils.min.js"></script>
|
|
20
|
+
<script src="../js/iframeResizer.min.js"></script>
|
|
21
|
+
<script src="resources/testLib.js"></script>
|
|
22
|
+
<script>
|
|
23
|
+
|
|
24
|
+
'use strict';
|
|
25
|
+
var msgId = '[iFrameSizerTest]:';
|
|
26
|
+
|
|
27
|
+
asyncTest( "iFrame size Event", function() {
|
|
28
|
+
|
|
29
|
+
var callbackCounter = 0;
|
|
30
|
+
|
|
31
|
+
$('iframe').iFrameResize({
|
|
32
|
+
//log:true,
|
|
33
|
+
interval:0,
|
|
34
|
+
resizedCallback:function(messageData){
|
|
35
|
+
var msgType = 'size';
|
|
36
|
+
|
|
37
|
+
switch (''+(++callbackCounter)){
|
|
38
|
+
case '1':
|
|
39
|
+
sendMessage( msgType);
|
|
40
|
+
break;
|
|
41
|
+
case '2':
|
|
42
|
+
ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
|
|
43
|
+
sendMessage('size100');
|
|
44
|
+
break;
|
|
45
|
+
case '3':
|
|
46
|
+
ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
|
|
47
|
+
ok( '100' === messageData.height, 'Height received = 100');
|
|
48
|
+
//ok( 100 === $('iframe').height(), 'IFrame height = 100'); Works in phaatomJS, but not chrome!
|
|
49
|
+
sendMessage('size200300');
|
|
50
|
+
break;
|
|
51
|
+
case '4':
|
|
52
|
+
ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
|
|
53
|
+
ok( '200' === messageData.height, 'Height received = 200');
|
|
54
|
+
ok( '300' === messageData.width, 'Width received = 300');
|
|
55
|
+
start();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
</script>
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>QUnit LoadHide</title>
|
|
6
|
+
<link rel="stylesheet" href="resources/qunit.css">
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="qunit"></div>
|
|
10
|
+
<div id="qunit-fixture">
|
|
11
|
+
|
|
12
|
+
<div style="width:600px;">
|
|
13
|
+
<iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<script src="resources/qunit.js"></script>
|
|
18
|
+
<script src="resources/jquery.js"></script>
|
|
19
|
+
<script>
|
|
20
|
+
/*
|
|
21
|
+
* File: jquery.iframeSizer.js
|
|
22
|
+
* Desc: Force cross domain iframes to size to content.
|
|
23
|
+
* Requires: iframeSizer.contentWindow.js to be loaded into the target frame.
|
|
24
|
+
* Author: David J. Bradshaw - dave@bradshaw.net
|
|
25
|
+
* Date: 2013-06-14
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
(function($) {
|
|
30
|
+
|
|
31
|
+
var
|
|
32
|
+
msgId = '[iFrameSizer]', //Must match iframe msg ID
|
|
33
|
+
msgIdLen = msgId.length,
|
|
34
|
+
count = 0,
|
|
35
|
+
settings,
|
|
36
|
+
defaults = {
|
|
37
|
+
log: false,
|
|
38
|
+
contentWindowBodyMargin:8,
|
|
39
|
+
doHeight:true,
|
|
40
|
+
doWidth:false,
|
|
41
|
+
interval:0,
|
|
42
|
+
enablePublicMethods:false,
|
|
43
|
+
callback:function(){}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
function setupRAF(){
|
|
47
|
+
var
|
|
48
|
+
vendors = ['moz', 'webkit', 'o', 'ms'],
|
|
49
|
+
x;
|
|
50
|
+
|
|
51
|
+
// Remove vendor prefixing if prefixed and break early if not
|
|
52
|
+
for (x = 0; x < vendors.length && !window.requestAnimationFrame; x += 1) {
|
|
53
|
+
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// If not supported then just call callback
|
|
57
|
+
if (!window.requestAnimationFrame){
|
|
58
|
+
log(' RequestAnimationFrame not supported');
|
|
59
|
+
window.requestAnimationFrame = function(callback){
|
|
60
|
+
callback();
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function log(msg){
|
|
67
|
+
if (window.console){
|
|
68
|
+
console.log(msgId + '[Host page]' + msg);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
setupRAF();
|
|
73
|
+
|
|
74
|
+
$(window).on('message',function(event){
|
|
75
|
+
function receiver(msg) {
|
|
76
|
+
function resize(){
|
|
77
|
+
function setDimension(dimension){
|
|
78
|
+
window.requestAnimationFrame(function(){
|
|
79
|
+
messageData.iframe.style[dimension] = messageData[dimension] + 'px';
|
|
80
|
+
log( ' ' + messageData.iframe.id + ' ' + dimension + ' set to ' + messageData[dimension] + 'px');
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if(settings.doHeight){
|
|
85
|
+
setDimension('height');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if(settings.doWidth){
|
|
89
|
+
setDimension('width');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function processMsg(){
|
|
94
|
+
var data = msg.substr(msgIdLen).split(':');
|
|
95
|
+
|
|
96
|
+
messageData = {
|
|
97
|
+
iframe: document.getElementById(data[0]),
|
|
98
|
+
height: data[1],
|
|
99
|
+
width: data[2]
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
var messageData = {};
|
|
104
|
+
|
|
105
|
+
//check message is for us.
|
|
106
|
+
if (msgId === msg.substr(0,msgIdLen)){
|
|
107
|
+
processMsg();
|
|
108
|
+
resize();
|
|
109
|
+
settings.callback(messageData,settings);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
receiver(event.originalEvent.data);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
$.fn.iFrameSizer = function(options){
|
|
118
|
+
|
|
119
|
+
settings = $.extend( {}, defaults, options );
|
|
120
|
+
|
|
121
|
+
return this.each(function(){
|
|
122
|
+
function isIframe(){
|
|
123
|
+
return iframe.contentWindow ? true : false;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
//We have to call trigger twice, as we can not be sure if all
|
|
127
|
+
//iframes have completed loading when this code runs.
|
|
128
|
+
function init(){
|
|
129
|
+
iframe.style.overflow = 'hidden';
|
|
130
|
+
iframe.scrolling = 'no';
|
|
131
|
+
|
|
132
|
+
$(iframe).on('load',function(){
|
|
133
|
+
trigger('iFrame.onload');
|
|
134
|
+
});
|
|
135
|
+
trigger('init');
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function trigger(calleeMsg){
|
|
139
|
+
|
|
140
|
+
function ensureHasId(){
|
|
141
|
+
if (''===iframe.id){
|
|
142
|
+
iframe.id = 'iFrameSizer' + count++;
|
|
143
|
+
log(' Added missing iframe ID: '+iframe.id);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function postMessageToIframe(){
|
|
148
|
+
var msg = iframe.id + ':' + settings.contentWindowBodyMargin + ':' + settings.doWidth + ':' +
|
|
149
|
+
settings.log + ':' + settings.interval + ':' + settings.enablePublicMethods;
|
|
150
|
+
log('[' + calleeMsg + '] Sending init msg to iframe ('+msg+')');
|
|
151
|
+
iframe.contentWindow.postMessage( msgId + msg, '*' );
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
ensureHasId();
|
|
155
|
+
postMessageToIframe();
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
var iframe = this;
|
|
159
|
+
|
|
160
|
+
if (isIframe()){
|
|
161
|
+
init();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
})( window.jQuery );
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
</script>
|
|
170
|
+
<script>
|
|
171
|
+
|
|
172
|
+
'use strict';
|
|
173
|
+
var msgId = '[iFrameSizerTest]:';
|
|
174
|
+
|
|
175
|
+
asyncTest( "postMessage Response", function() {
|
|
176
|
+
|
|
177
|
+
$('iframe').iFrameSizer({
|
|
178
|
+
callback:function(messageData){
|
|
179
|
+
//console.log('Receive message back from iFrame.')
|
|
180
|
+
ok( true, 'Receive message back from iFrame.' );
|
|
181
|
+
ok( '600' === messageData.width, 'iFrame width = 600.' );
|
|
182
|
+
start();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
</script>
|
|
188
|
+
</body>
|
|
189
|
+
</html>
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
regenerate: false
|
|
3
|
+
---
|
|
4
|
+
{% capture cache %}
|
|
5
|
+
|
|
6
|
+
{% comment %}
|
|
7
|
+
# -----------------------------------------------------------------------------
|
|
8
|
+
# J1: ~/assets/themes/j1/j1/js/adapters/iframe_resizer.js
|
|
9
|
+
# Liquid JS template to create the J1 adapter for iFrameResizer
|
|
10
|
+
#
|
|
11
|
+
# Product/Info:
|
|
12
|
+
# https://jekyll.one
|
|
13
|
+
# http://davidjbradshaw.github.io/iframe-resizer/
|
|
14
|
+
#
|
|
15
|
+
# Copyright (C) 2016 Juergen Adams
|
|
16
|
+
# Copyright (C) 2013-15 David J. Bradshaw
|
|
17
|
+
#
|
|
18
|
+
# J1 Template is licensed under the MIT License.
|
|
19
|
+
# For details, see https://jekyll.one
|
|
20
|
+
# iFrameResizer is licensed under under the MIT License.
|
|
21
|
+
# For details, see http://davidjbradshaw.github.io/iframe-resizer/
|
|
22
|
+
#
|
|
23
|
+
# -----------------------------------------------------------------------------
|
|
24
|
+
{% endcomment %}
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
# -----------------------------------------------------------------------------
|
|
28
|
+
# J1: ~/assets/themes/j1/j1/js/adapters/simple_jekyll_search.js
|
|
29
|
+
# J1 Adapter for iFrameResizer
|
|
30
|
+
#
|
|
31
|
+
# Product/Info:
|
|
32
|
+
# https://jekyll.one
|
|
33
|
+
# http://davidjbradshaw.github.io/iframe-resizer/
|
|
34
|
+
#
|
|
35
|
+
# Copyright (C) 2016 Juergen Adams
|
|
36
|
+
# Copyright (C) 2013-15 David J. Bradshaw
|
|
37
|
+
#
|
|
38
|
+
# J1 Template is licensed under the MIT License.
|
|
39
|
+
# For details, see https://jekyll.one
|
|
40
|
+
# iFrameResizer is licensed under under the MIT License.
|
|
41
|
+
# For details, see http://davidjbradshaw.github.io/iframe-resizer/
|
|
42
|
+
#
|
|
43
|
+
# -----------------------------------------------------------------------------
|
|
44
|
+
# Adapter generated: {{site.time}}
|
|
45
|
+
# -----------------------------------------------------------------------------
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
{% if page.minHeight %}
|
|
49
|
+
{% assign minHeight = page.minHeight %}
|
|
50
|
+
{% else %}
|
|
51
|
+
{% assign minHeight = site.data.modules.j1_iframe_resizer.minHeight %}
|
|
52
|
+
{% endif %}
|
|
53
|
+
|
|
54
|
+
{% if page.log %}
|
|
55
|
+
{% assign log = page.log %}
|
|
56
|
+
{% else %}
|
|
57
|
+
{% assign log = site.data.modules.j1_iframe_resizer.log %}
|
|
58
|
+
{% endif %}
|
|
59
|
+
|
|
60
|
+
var iFrameResizer = function () {
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
// Initialize
|
|
64
|
+
init: function ( options ) {
|
|
65
|
+
|
|
66
|
+
this.settings = $.extend({}, options);
|
|
67
|
+
|
|
68
|
+
if (this.settings.minHeight === undefined) {
|
|
69
|
+
this.settings.minHeight = {{minHeight}};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (this.settings.log === undefined) {
|
|
73
|
+
this.settings.log = {{log}};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
iFrameResize({
|
|
77
|
+
// Options
|
|
78
|
+
log: this.settings.log,
|
|
79
|
+
autoResize: {{site.data.modules.j1_iframe_resizer.autoResize | json }},
|
|
80
|
+
bodyBackground: {{site.data.modules.j1_iframe_resizer.bodyBackground | json }},
|
|
81
|
+
bodyMargin: {{site.data.modules.j1_iframe_resizer.bodyMargin | json }},
|
|
82
|
+
checkOrigin: {{site.data.modules.j1_iframe_resizer.checkOrigin | json }},
|
|
83
|
+
inPageLinks: {{site.data.modules.j1_iframe_resizer.inPageLinks | json }},
|
|
84
|
+
interval: {{site.data.modules.j1_iframe_resizer.interval | json }},
|
|
85
|
+
heightCalculationMethod: {{site.data.modules.j1_iframe_resizer.heightCalculationMethod | json }},
|
|
86
|
+
maxHeight: {{site.data.modules.j1_iframe_resizer.maxHeight | json }},
|
|
87
|
+
minWidth: {{site.data.modules.j1_iframe_resizer.minWidth | json }},
|
|
88
|
+
maxWidth: {{site.data.modules.j1_iframe_resizer.maxWidth}},
|
|
89
|
+
minHeight: this.settings.minHeight,
|
|
90
|
+
resizeFrom: {{site.data.modules.j1_iframe_resizer.resizeFrom | json }},
|
|
91
|
+
scrolling: {{site.data.modules.j1_iframe_resizer.scrolling | json }},
|
|
92
|
+
sizeHeight: {{site.data.modules.j1_iframe_resizer.sizeHeight | json }},
|
|
93
|
+
sizeWidth: {{site.data.modules.j1_iframe_resizer.sizeWidth | json }},
|
|
94
|
+
tolerance: {{site.data.modules.j1_iframe_resizer.tolerance | json }},
|
|
95
|
+
widthCalculationMethod: {{site.data.modules.j1_iframe_resizer.widthCalculationMethod | json }}
|
|
96
|
+
// targetOrigin: {{site.protocol}}://{{site.host}}:{{site.port}}',
|
|
97
|
+
});
|
|
98
|
+
} // end init
|
|
99
|
+
}; // end return
|
|
100
|
+
}();
|
|
101
|
+
|
|
102
|
+
{% endcapture %}
|
|
103
|
+
|
|
104
|
+
{{ cache | strip_empty_lines }}
|
|
105
|
+
{% assign cache = nil %}
|