Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
74407104
Commit
74407104
authored
7 years ago
by
Johann-S
Committed by
XhmikosR
6 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Add CustomEvent polyfill and a working preventDefault for IE
parent
d6560bbc
5 merge requests
!31948
Examples/Floating-labels: fix bad behavior with autofill
,
!30064
test
,
!29779
Responsive sizing
,
!28882
fix custom-select-indicator in IE10
,
!28721
Hot test
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
js/src/alert.js
+2
-1
js/src/alert.js
js/src/dom/eventHandler.js
+55
-0
js/src/dom/eventHandler.js
with
57 additions
and
1 deletion
+57
-1
js/src/alert.js
+
2
-
1
View file @
74407104
...
@@ -85,7 +85,8 @@ class Alert {
...
@@ -85,7 +85,8 @@ class Alert {
let
parent
=
false
let
parent
=
false
if
(
selector
)
{
if
(
selector
)
{
parent
=
document
.
querySelector
(
selector
)
const
tmpSelected
=
SelectorEngine
.
find
(
selector
)
parent
=
tmpSelected
[
0
]
}
}
if
(
!
parent
)
{
if
(
!
parent
)
{
...
...
This diff is collapsed.
Click to expand it.
js/src/dom/eventHandler.js
+
55
-
0
View file @
74407104
...
@@ -5,6 +5,58 @@
...
@@ -5,6 +5,58 @@
* --------------------------------------------------------------------------
* --------------------------------------------------------------------------
*/
*/
// defaultPrevented is broken in IE.
// https://connect.microsoft.com/IE/feedback/details/790389/event-defaultprevented-returns-false-after-preventdefault-was-called
const
workingDefaultPrevented
=
(()
=>
{
const
e
=
document
.
createEvent
(
'
CustomEvent
'
)
e
.
initEvent
(
'
Bootstrap
'
,
true
,
true
)
e
.
preventDefault
()
return
e
.
defaultPrevented
})()
// CustomEvent polyfill for IE (see: https://mzl.la/2v76Zvn)
if
(
typeof
window
.
CustomEvent
!==
'
function
'
)
{
window
.
CustomEvent
=
(
event
,
params
)
=>
{
params
=
params
||
{
bubbles
:
false
,
cancelable
:
false
}
const
evt
=
document
.
createEvent
(
'
CustomEvent
'
)
evt
.
initCustomEvent
(
event
,
params
.
bubbles
,
params
.
cancelable
,
params
.
detail
)
if
(
!
workingDefaultPrevented
)
{
const
origPreventDefault
=
Event
.
prototype
.
preventDefault
evt
.
preventDefault
=
()
=>
{
if
(
!
evt
.
cancelable
)
{
return
}
origPreventDefault
.
call
(
evt
)
Object
.
defineProperty
(
evt
,
'
defaultPrevented
'
,
{
get
()
{
return
true
},
configurable
:
true
})
}
}
return
evt
}
window
.
CustomEvent
.
prototype
=
window
.
Event
.
prototype
}
// Event constructor shim
if
(
!
window
.
Event
||
typeof
window
.
Event
!==
'
function
'
)
{
const
origEvent
=
window
.
Event
window
.
Event
=
(
inType
,
params
)
=>
{
params
=
params
||
{}
const
e
=
document
.
createEvent
(
'
Event
'
)
e
.
initEvent
(
inType
,
Boolean
(
params
.
bubbles
),
Boolean
(
params
.
cancelable
))
return
e
}
window
.
Event
.
prototype
=
origEvent
.
prototype
}
const
EventHandler
=
{
const
EventHandler
=
{
on
(
element
,
event
,
handler
)
{
on
(
element
,
event
,
handler
)
{
if
(
typeof
event
!==
'
string
'
||
typeof
element
===
'
undefined
'
)
{
if
(
typeof
event
!==
'
string
'
||
typeof
element
===
'
undefined
'
)
{
...
@@ -31,6 +83,9 @@ const EventHandler = {
...
@@ -31,6 +83,9 @@ const EventHandler = {
bubbles
:
true
,
bubbles
:
true
,
cancelable
:
true
cancelable
:
true
})
})
// Add a function 'isDefaultPrevented'
eventToDispatch
.
isDefaultPrevented
=
()
=>
eventToDispatch
.
defaultPrevented
element
.
dispatchEvent
(
eventToDispatch
)
element
.
dispatchEvent
(
eventToDispatch
)
return
eventToDispatch
return
eventToDispatch
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets