Commit Graph

520 Commits

Author SHA1 Message Date
Niklas von Hertzen
e380e2c873 Use correct JS context to enable use of instanceof 2017-08-04 19:27:35 +08:00
Niklas von Hertzen
3977ebeadd Log errors in __DEV__ mode (Fix #905) 2017-08-04 00:13:20 +08:00
Niklas von Hertzen
9a7075252b Fix ImageLoader flow types to reflect possible error'd images 2017-08-04 00:00:02 +08:00
Niklas von Hertzen
96fbe954e9 Correctly strip quotes from pseudoelement url() 2017-08-03 23:54:44 +08:00
Niklas von Hertzen
b8450f4d4a Allow image loads to fail without crashing render 2017-08-03 23:54:23 +08:00
Niklas von Hertzen
b3db735415 Render :before and :after pseudoelements 2017-08-03 23:46:29 +08:00
Niklas von Hertzen
f6a5153d99 Implement support for multiple text-transforms with independent colors 2017-08-03 21:47:35 +08:00
Niklas von Hertzen
ad1119a76c Apply border radius correctly on image elements 2017-08-03 21:05:17 +08:00
Niklas von Hertzen
fe97851988 Implement HTMLCanvasElement rendering 2017-08-03 20:57:55 +08:00
Niklas von Hertzen
f2b8c16c2c Implement visibility css prop 2017-08-03 20:28:39 +08:00
Niklas von Hertzen
f278ba4f22 Begin implementing overflow clipping 2017-08-02 21:35:54 +08:00
Niklas von Hertzen
52a815a13f Fix background-clip and background-origin rendering 2017-08-02 20:29:45 +08:00
Niklas von Hertzen
7cc2b856cb Use correct canvas size for full document render 2017-08-01 23:41:12 +08:00
Niklas von Hertzen
aafb0cfb9c Calculate correct bounds for text/elements under nested transforms 2017-08-01 23:27:12 +08:00
Niklas von Hertzen
c5135f4839 Assign default options values 2017-08-01 22:51:59 +08:00
Niklas von Hertzen
478155af64 Clone document before parsing it 2017-08-01 20:54:18 +08:00
Niklas von Hertzen
7a3bad2fcb Add missing Flow tags 2017-08-01 18:51:59 +08:00
Niklas von Hertzen
ba089b4771 Render multiple backgrounds in correct order 2017-08-01 18:25:32 +08:00
Niklas von Hertzen
9f8bae4b09 Correctly parse multi background-repeat values 2017-08-01 18:25:20 +08:00
Niklas von Hertzen
8a6fb5f733 Library rewrite 2017-08-01 00:25:58 +08:00
Niklas von Hertzen
3b49cba21c Fix rendering of content when window is scrolled 2016-01-23 22:05:43 +02:00
Niklas von Hertzen
4ebe9c5fcc Don't require logger to be exposed to window object 2016-01-23 20:41:53 +02:00
Usman Akeju
318ca48157 Linear gradients now parse color names
Also:
- Cleans up color stop and linear gradient regular expressions.
- Handles percentage-based linear gradient positions (fixes Firefox).

Fixes niklasvh/html2canvas#469.
2015-10-25 09:44:14 -04:00
Niklas von Hertzen
e88ac871a3 Remove Promise polyfill 2015-10-19 01:25:03 +03:00
Niklas von Hertzen
aa05241ff8 Fix gradient tests 2015-10-18 23:57:41 +03:00
Niklas von Hertzen
364a8aac1c Merge remote-tracking branch 'origin/pr/645' 2015-10-18 23:15:12 +03:00
Niklas von Hertzen
46078acf71 Fix #688 fatal exception on unmatched color stop 2015-10-18 16:51:53 +03:00
Niklas von Hertzen
4b37909f09 Fix support for requirejs/amd 2015-08-30 02:27:38 +03:00
hyojin.kwak
90f9eeba83 Fix #599 2015-06-10 16:13:17 +09:00
Niklas von Hertzen
98ee30643a Fix iOS scrolling issue on clone 2015-03-30 00:58:50 +03:00
Niklas von Hertzen
a49c3a2320 Correctly handle named colors in gradients 2015-03-29 23:20:17 +03:00
Corné Dorrestijn
9201cf7e95 Accept matrix3d and convert it 2015-03-05 15:52:23 +01:00
Niklas von Hertzen
c2baf42145 Fix fail on transparent colors in linear gradients 2015-03-01 17:43:18 +02:00
Niklas von Hertzen
585a96a918 Preserve scrolling positions of nodes on clone (#511) 2015-02-28 16:51:52 +02:00
Niklas von Hertzen
3671de81f9 Fix module name casing 2015-02-03 21:39:57 +02:00
Niklas von Hertzen
f3b6df267e Switch build to use browserify (#502) 2015-02-03 21:34:05 +02:00
Niklas von Hertzen
60619dca72 Fix #517 2015-01-26 22:55:10 +02:00
Niklas von Hertzen
ed299b3db1 Remove dead code 2015-01-20 19:51:52 +02:00
Niklas von Hertzen
edb113c230 Make html2canvas requireable in nodejs 2015-01-19 23:33:29 +02:00
Niklas von Hertzen
fc01263f68 Add comment regarding IE9 clone node 2015-01-19 22:30:10 +02:00
Niklas von Hertzen
399ae9f33d Fix #503 2015-01-19 22:28:10 +02:00
Niklas von Hertzen
77c73c478f Fix iframe proxy 2015-01-18 21:38:05 +02:00
Niklas von Hertzen
7a58ad019f Fix background rendering regression #496 2015-01-10 20:53:06 +02:00
Niklas von Hertzen
9b372a4399 Correctly clone <select> and <textarea> value property 2015-01-05 22:58:36 +02:00
Niklas von Hertzen
498527918c Correctly render input[type="password"] value 2015-01-05 21:36:53 +02:00
Usman Akeju
e2713cd6f9 Temporarily add manual update to es6-promise polyfill
This replaces an old and outdated Promise polyfill that was included
with previous versions of html2canvas, and which consistently overwrote
native browser implementations when it shouldn't have. It is essentially
a (slightly modified) paste of the most current minified version of
es6-promise, found here:
https://es6-promises.s3.amazonaws.com/es6-promise-2.0.1.min.js

The plan is to eventually include this polyfill as a submodule
dependency, but the build process for es6-promise is a bit
cumbersome/opaque/painful at the moment, so this manual update was an
easier interim solution.

Please note that I had to manually add the actual call to
`ES6Promise.polyfill()` to load the polyfill--this will become
unnecessarry in future versions of es6-promise. Note also that I had to
manually pass `window` to the polyfill's IIFE, since `this` is an empty
object in the current scope.

Ref niklasvh/html2canvas#494.
2014-12-29 16:35:39 +01:00
Niklas von Hertzen
2f5f9f6e59 Allow multiple renders to occur simultaneously 2014-12-24 17:34:31 +02:00
Niklas von Hertzen
f5e318d968 Manually call toString for colors 2014-12-13 19:23:00 +02:00
Niklas von Hertzen
612e59c3d3 Implement border-inset color transforms 2014-12-13 19:00:29 +02:00
Niklas von Hertzen
fcbcb9bfaa Add color object to accept array of rgb(a) 2014-12-13 18:30:52 +02:00
Niklas von Hertzen
3b0352a3d7 Use Color objects for colors 2014-12-13 18:10:41 +02:00
Niklas von Hertzen
313c227a1f Add color parsing 2014-12-13 17:24:54 +02:00
Niklas von Hertzen
893ce74a33 Implement checkbox and radio input element rendering 2014-12-06 18:17:04 +02:00
Niklas von Hertzen
069140974b Don't scroll owner document after cloned document load 2014-11-30 14:23:52 +02:00
Niklas von Hertzen
1e826e32ae Fix scroll to top with pages using hashtag anchors 2014-11-30 14:16:02 +02:00
Dan Alstadt
d4cb7e8868 add html2canvas-container classname to iframe 2014-11-20 14:27:34 -06:00
Niklas von Hertzen
657eb983cf Add options.background option 2014-11-04 21:53:26 +02:00
Niklas von Hertzen
fc800bff9d Partial fix for borders 2014-11-04 21:40:09 +02:00
Niklas von Hertzen
aa3aafbc0c Fix race condition for content load 2014-11-03 23:29:57 +02:00
Niklas von Hertzen
525b5c4f36 Fix font rendering for IE with multiple inherited fonts 2014-11-02 22:15:48 +02:00
Niklas von Hertzen
772767d0d9 Disable transitions for cloned page 2014-11-02 20:26:25 +02:00
Niklas von Hertzen
7ebd191488 Fix form placeholder/value positioning for scrolled pages 2014-11-02 19:18:39 +02:00
Niklas von Hertzen
6ece2a3d5a Fix svg matching performance issue 2014-11-02 18:54:39 +02:00
Niklas von Hertzen
1793b802b1 Add onclone callback option to allow modifying cloned document prior to rendering 2014-10-26 19:10:09 +02:00
Niklas von Hertzen
04bdb48cba Fix layer ordering with multiple stacks on same auto z-index 2014-10-19 22:29:34 +03:00
Niklas von Hertzen
7e13231807 Fix canvas cropping with type: 'view' 2014-10-15 20:28:26 +03:00
Niklas von Hertzen
199685ebd1 Disable animations on rendered page 2014-10-12 20:44:39 +03:00
Niklas von Hertzen
444869e3ca Implement css clipping for rect() (with pixel values) 2014-10-12 20:32:47 +03:00
Niklas von Hertzen
5712b621ca Correctly clip content that has border-radius (#399) 2014-10-07 19:11:24 +03:00
Niklas von Hertzen
6073928978 Fix origin check for IE (#460) 2014-10-07 18:59:26 +03:00
Niklas von Hertzen
e103ad8219 Fix pseudoelement rendering (with nth-child selectors etc.) 2014-10-06 22:46:43 +03:00
Niklas von Hertzen
b60b4b2a45 Add option to use existing canvas for rendering 2014-09-28 22:51:11 +03:00
Niklas von Hertzen
bd1abe1857 Provide fallbacks for html parsing 2014-09-28 00:11:54 +03:00
Niklas von Hertzen
8a3d1d7f22 Fix firefox cross-origin iframe rendering 2014-09-27 23:03:57 +03:00
Niklas von Hertzen
19777c6623 Add simpler api for rendering external urls 2014-09-27 21:07:25 +03:00
Niklas von Hertzen
1e19832171 Add google maps test 2014-09-27 20:20:08 +03:00
Niklas von Hertzen
fa659ad1df Fix background-size with background-repeat x and y as well (#447) 2014-09-27 18:03:18 +03:00
Niklas von Hertzen
f517a35781 Clone and render canvas content correctly 2014-09-27 18:00:14 +03:00
Niklas von Hertzen
3f3424e49c Fix: Render background-size correctly with no-repeat #447 2014-09-27 17:02:46 +03:00
Niklas von Hertzen
1d8a316f13 Correctly handle overflow content 2014-09-27 16:54:53 +03:00
Niklas von Hertzen
b1f948bb60 Fix z-index stacking with fixed position 2014-09-21 11:44:11 +03:00
Niklas von Hertzen
24d9a22556 Correctly apply canvas background color 2014-09-21 11:24:20 +03:00
Niklas von Hertzen
7ee2f411b0 Continue render with failed svg images 2014-09-20 21:54:03 +03:00
Niklas von Hertzen
0a7df6d9b9 Correctly use native rendering with inline <svg> nodes if possible 2014-09-20 20:21:25 +03:00
Niklas von Hertzen
70241a789d Fallback to jsonp proxy if browser doesn't support cors xhr/image 2014-09-20 19:53:22 +03:00
Niklas von Hertzen
3b8d4dece2 Use correct window size for cloned iframe 2014-09-20 18:01:57 +03:00
Niklas von Hertzen
e80fe312ee Merge branch 'fix-doc-measurements' of https://github.com/ddrscott/html2canvas into ddrscott-fix-doc-measurements
Conflicts:
	dist/html2canvas.js
	dist/html2canvas.min.js
	src/core.js
2014-09-20 17:40:09 +03:00
Niklas von Hertzen
b141c9f0d1 Begin implementing cross-origin iframes 2014-09-20 17:36:15 +03:00
Niklas von Hertzen
d4c9a41873 Add preliminary support for same-origin iframes 2014-09-16 20:12:13 +03:00
Niklas von Hertzen
6347e7f043 Use correct document context for canvas render 2014-09-14 20:14:38 +03:00
Niklas von Hertzen
9d088fa431 Use punycode to parse unicode characters correctly 2014-09-14 19:32:26 +03:00
Niklas von Hertzen
9907149513 Don't parse/render input hidden nodes 2014-09-14 17:44:55 +03:00
Niklas von Hertzen
0325a9b836 Add atob polyfill for ie9 for SVG base64 rendering 2014-09-09 18:42:00 +03:00
Niklas von Hertzen
36052c2765 Add support for inline, base64 and node svg's 2014-09-08 23:44:10 +03:00
Niklas von Hertzen
44b958beaf Default to element dimension if image size cannot be determined (vector images) 2014-09-08 21:25:21 +03:00
Niklas von Hertzen
2a020e5a21 Allow tainting images to be drawn if option enabled 2014-09-08 21:24:26 +03:00
Niklas von Hertzen
c20e679f2c Prefer native svg rendering if available 2014-09-08 21:16:30 +03:00
Scott Pierce
52c669fe5b Merge branch 'master' of https://github.com/niklasvh/html2canvas
Conflicts:
	build/html2canvas.min.js
	dist/html2canvas.js
	src/core.js
2014-09-04 16:24:23 -05:00
Scott Pierce
382c16a522 use cloned document for measurements 2014-09-04 14:02:44 -05:00
Niklas von Hertzen
ba9d5201cf Add svg rendering with fabric.js 2014-09-04 20:50:31 +03:00
Niklas von Hertzen
2e2d722e3d Fix rendering for safari 6 2014-09-04 19:29:42 +03:00
Niklas von Hertzen
07f793b0ed Preliminary support for svg rendering 2014-09-04 18:47:06 +03:00
Niklas von Hertzen
ce1c4c84f5 Fix CSS gradients fail to render when non-vendor prefix property is included #388 2014-05-18 23:20:45 +03:00
Niklas von Hertzen
6959058560 Fix linear gradient rendering 2014-05-18 19:14:22 +03:00
Niklas von Hertzen
d6ed6c0194 Fallback to DummyImageContainer if no suitable ImageContainer found 2014-05-18 17:48:32 +03:00
Niklas von Hertzen
9ee87339a3 Fix cors loading of images 2014-05-18 17:40:01 +03:00
Niklas von Hertzen
281e6bbedf Use backgroundColor from documentElement if rendered element lacks backgroundColor 2014-04-06 21:43:20 +03:00
Niklas von Hertzen
fee91055b2 Fix bug with iframe not being loaded in-time 2014-03-24 19:05:32 +02:00
Niklas von Hertzen
650ead63e5 Fix transform nesting 2014-03-15 14:30:26 +02:00
Niklas von Hertzen
b35fcaeaf9 Move non-canvas supported fallback to seperate file 2014-03-15 13:22:55 +02:00
Niklas von Hertzen
81c22866bc Don't fail on broken images 2014-03-15 13:20:05 +02:00
Niklas von Hertzen
25d892f525 Fix IE9 https origin check bug 2014-03-15 13:01:04 +02:00
Niklas von Hertzen
12d85e3c04 Fail with a Promise.reject when no canvas support 2014-03-10 18:46:25 +02:00
Niklas von Hertzen
3101f2007a Fix Firefox DOM clone not being ready 2014-03-05 22:24:53 +02:00
Niklas von Hertzen
85b77ca49f Fix cropping bug 2014-03-05 19:19:24 +02:00
Niklas von Hertzen
bb8c5a973b Limit crop to the maximum size of outputted canvas 2014-03-04 21:54:24 +02:00
Niklas von Hertzen
cfe4137bcc Account for negative bounds in cropping 2014-03-04 20:42:34 +02:00
Niklas von Hertzen
d2c3378c3e Correctly crop content 2014-03-03 21:19:28 +02:00
Niklas von Hertzen
95f4bcea0a Render input elements correctly 2014-03-02 19:51:46 +02:00
Niklas von Hertzen
9bae5b610a Fix IE misalignment of content after scroll 2014-03-02 18:03:30 +02:00
Niklas von Hertzen
7ce46e95cd Fix logging in IE9 2014-03-02 16:55:40 +02:00
Niklas von Hertzen
84c1dc6283 Remove script tags from cloned DOM 2014-03-02 16:03:22 +02:00
Niklas von Hertzen
15ca3381eb Fix text rendering for IE and Opera 2014-03-02 16:00:59 +02:00
Niklas von Hertzen
18d95d669b Partial implementation for transforms 2014-02-23 17:35:46 +02:00
Niklas von Hertzen
5137e5f35a Render correct element 2014-02-23 17:02:49 +02:00
Niklas von Hertzen
314d26f1f1 Hide iframe container from view during render 2014-02-23 16:26:23 +02:00
Niklas von Hertzen
82e5a8a7c0 Fix image loading for cross-origin resources 2014-02-17 00:04:09 +02:00
Niklas von Hertzen
9af96d3812 Fix render ordering of nodes that form fake stacking contexts 2014-02-15 00:33:09 +02:00
Niklas von Hertzen
6f2a775841 Fix background position rendering 2014-02-15 00:31:48 +02:00
Niklas von Hertzen
d9d516d27e Force doctype for iframe 2014-02-10 19:53:13 +02:00
Niklas von Hertzen
899d5321d4 Fix pseudoelement rendering for Firefox 2014-02-08 17:42:40 +02:00
Niklas von Hertzen
5d20493f46 Add support for pseudoelements 2014-02-08 16:52:41 +02:00
Niklas von Hertzen
b5891c49b4 Correctly assign image loading method for <img> elements 2014-02-08 14:07:20 +02:00
Niklas von Hertzen
467ff87482 Switch to using Promises 2014-02-03 19:42:42 +02:00
Niklas von Hertzen
9beae48cf0 Start implementing background gradients 2014-02-01 21:48:30 +02:00
Niklas von Hertzen
17731169e9 Add support for single text-shadow 2014-02-01 20:03:23 +02:00
Niklas von Hertzen
e27c41efd3 Add font metrics and text-decorations 2014-02-01 19:36:43 +02:00
Niklas von Hertzen
1f90defbfa Fix text rendering for Opera/IE 2014-02-01 19:11:59 +02:00
Niklas von Hertzen
b4bb34c95b Move NodeParser to seperate file 2014-02-01 18:52:53 +02:00
Niklas von Hertzen
64668fe694 ios window size and scroll fixes 2014-02-01 18:32:05 +02:00
Niklas von Hertzen
9ebae161e2 Fix IE issues 2014-01-26 20:43:50 +02:00
Niklas von Hertzen
729bc88d1f Increase logging 2014-01-26 20:43:36 +02:00
Niklas von Hertzen
b1c2f03ae9 Add option to only render current view 2014-01-26 20:42:57 +02:00
Niklas von Hertzen
74cb3466ec Draw <img> elements 2014-01-26 18:10:04 +02:00
Niklas von Hertzen
2afdcaff35 Add Promise polyfill 2014-01-26 16:06:39 +02:00
Niklas von Hertzen
1070cec852 Implement background rendering 2014-01-26 16:06:16 +02:00
Niklas von Hertzen
ba9a33b1bc Add work around for chrome related background-image issues in iframe 2014-01-26 15:50:13 +02:00
Niklas von Hertzen
f474542382 Begin implementing background-image rendering 2014-01-21 21:41:00 +02:00
Niklas von Hertzen
0cb259f6cd Cache backgroundImages request for nodes 2014-01-20 22:42:58 +02:00
Niklas von Hertzen
1a7f5732bf Filter nodes and render correct size correctly 2014-01-20 22:42:39 +02:00