Comments (7)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
That User Agent string does not pass the regex test.
Could you setup a test page?
from svg4everybody.
Thanks for the quick reply. I'm using your polyfill in my blog and I've tried to set it up with 2.0.0 so I can support MS Edge.
from svg4everybody.
I've been kicking around a feature test that works for most
(except Safari so that could reduce the UA sniffing):
var polycheck = false;
;(function() {
function check(e) {
polycheck = use.getBoundingClientRect().width === 1;
if (e || !--retries) {
body.removeChild(svg);
clearInterval(id);
}
}
try {
var url = URL.createObjectURL(
new Blob([
'<svg xmlns="http://www.w3.org/2000/svg">' +
'<rect width="1" height="1" id="x"/>' +
'</svg>'
], { 'type': 'image/svg+xml' })
);
var body = document.body;
body.insertAdjacentHTML('beforeend',
'<svg style="position:absolute;visibility:hidden">' +
'<use xlink:href="' + url + '#x"/>' +
'</svg>'
);
var retries = 3,
svg = body.lastChild,
use = svg.firstChild,
id = setInterval(check, 50);
use.addEventListener('load', check);
} catch(e) {}
}());
from svg4everybody.
I changed my build process to include the unminified version, so I could step through the code... and I can't replicate the bug anymore. I don't understand why but it all seems to work fine now, so I'm closing the issue. Thanks for taking a look.
from svg4everybody.
@jdalton wanna open that up on modernizr?
from svg4everybody.
Looking at this code, I think it can be simplified and possibly address some coverage for interop differences/bugs by changing 1 to 0, since the external resource was accessed, thus the feature does work.
polycheck = use.getBoundingClientRect().width != 0;
Any issues with this approach? This now results in Chrome/Edge/Firefox all returning true, IE11 returning false.
from svg4everybody.
@gregwhitworth Hm, I'm getting false with this in Safari 10.0.1
var polycheck = false;
;(function() {
function check(e) {
polycheck = use.getBoundingClientRect().width != 0;
if (e || !--retries) {
body.removeChild(svg);
clearInterval(id);
}
}
try {
var url = URL.createObjectURL(
new Blob([
'<svg xmlns="http://www.w3.org/2000/svg">' +
'<rect width="1" height="1" id="x"/>' +
'</svg>'
], { 'type': 'image/svg+xml' })
);
var body = document.body;
body.insertAdjacentHTML('beforeend',
'<svg style="position:absolute;visibility:hidden">' +
'<use xlink:href="' + url + '#x"/>' +
'</svg>'
);
var retries = 3,
svg = body.lastChild,
use = svg.firstChild,
id = setInterval(check, 50);
use.addEventListener('load', check);
} catch(e) {}
}());
from svg4everybody.
Related Issues (20)
- Not working for MS Edge HOT 3
- can't make href work using svg4everybody HOT 1
- svg4everybody is not defined
- Add workaround for SVG print bug in Firefox
- svg-chrom HOT 1
- SVG transform animateTransform not working in IE11 and Edge 42
- linearGradient for svg4everybody HOT 2
- run the polyfill only on selected dom element and its children
- Validate Not Running After Page Start
- Inlining External SVG
- Inlining External SVG from sprite, SVG doesn't display correctly HOT 3
- PreserveAspectRatio attribute is stripped out on IE11
- Add option to always replace contents ignoring browser support HOT 2
- Empty XHR embeds after splice(0)
- import does not seem to work properly
- Generate png from svg
- Svg4everybody not working on all svgs in IE11 HOT 2
- Suggestion: Suggest loading the script with the nomodule attribute HOT 2
- Issue with iPhone5 / Safari6
- Link to kartikprabhu.com "Inline SVG Icons" is broken; Archive.org link provided
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from svg4everybody.