j1m_scroll 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 %}
|