Comments (6)
Hi @optikfluffel Can you supply sample code? Are you binding a javascript event to the button? Does the button work if you load that page directly, or is the button only broken after getting to the page after a click from a different page?
To help, need to know more precisely what you mean by "Turbolinks stops working".
from turbolinks-classic.
Ok sorry, by "Turbolinks stops working" I mean it does whole page reloads after I follow the steps from twitter.com to add a button and add this to my template:
<a href="https://twitter.com/optikfluffel" class="twitter-follow-button" data-show-count="false" data-lang="en">
Follow @user
</a>
<script>
! function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
</script>
from turbolinks-classic.
So when you click the newly added button the page reloads?
A few ideas...
-
I think you'd want that button to be opted out of Turbolinks. See https://github.com/rails/turbolinks#opting-out-of-turbolinks.
-
I don't know exactly what the obfuscated
widgets.js
Javascript is doing but it does call preventDefault seven times. From the Turbolinks README:
Also, Turbolinks is installed as the last click handler for links. So if you install another handler that calls event.preventDefault(), Turbolinks will not run. This ensures that you can safely use Turbolinks with stuff like data-method, data-remote, or data-confirm from Rails.
from turbolinks-classic.
No not the link itself is the problem. If I only inlcude the widget.js
it starts reloading everything.
from turbolinks-classic.
Here are two ways you can handle this:
- Convert the JS snippet that Twitter provides into a named function, move it into one of your application JS files, and bind it to both the document ready and page:load events. Take a look at #131 for more details on the general premise.
- Cut out the middle man. Just put this in the body:
<script src="//platform.twitter.com/widgets.js"></script>
Note that the execution of external script tags within the body was just recently pulled into turbolinks (#88), so the only way you can use the second method is to either wait for the next version (0.5.3) or point your gemfile to the github repo.
from turbolinks-classic.
ah OK, Thanks :)
from turbolinks-classic.
Related Issues (20)
- Page does not always scroll to the top when DOM loads too fast
- SVG anchors not working with turbolinks
- Turbolinks.visit, partial replacement & relative urls (& IE11)
- Not correctly inferring protocol with SSL, unless force_ssl is set HOT 2
- Redirect and reload full page HOT 1
- JavaScript part of turbolinks on npm HOT 11
- Enable Turbolinks on a-tags after adding content over AJAX HOT 1
- File type blacklist instead of whitelist
- Scroll position of data-turbolinks-permanent elements lost on navigation. HOT 3
- Webpage without title, after turbolink has title of undefined HOT 1
- Problems with JS HOT 1
- Rails 5 deprecations
- Would you please tell me how to add your library or whether it's necessary to add this library?
- Sorry for duplicate
- Progress bar causing capybara tests to fail
- Documentation does not explain how to install current turbolinks-classic version HOT 1
- temporary inside permanent
- Clicking browser back button from an error page to a non-error page, retains the styles of the error page
- Turbolinks.enableProgressBar() returns undefined
- How to binding "page:load" cache-preview
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 turbolinks-classic.