droptheplot
droptheplot

Reputation: 628

Redirect with turbolinks from javascript

Is it possible to make window.location.replace or window.location.href work with turbolinks like it's a simple link?

Upvotes: 10

Views: 10059

Answers (3)

Fabrice G
Fabrice G

Reputation: 273

In case you implement Turbo Hotwired the basic usage is

Turbo.visit(your_url);

As decribed here

other usage with a stimulus controller

import { Controller } from 'stimulus';
import { visit } from '@hotwired/turbo';

export default class extends Controller {

    myEvent(event){
       // do some code
       // eg <span data-action="click->myController#myEvent" data-url="https://example.com/...">Hello</span> in case 
       // in case element is an button you don't need specify the event (default is click)

       this.goToUrl(event.currentTarget.dataset.url);
    }
  
    goToUrl(url){
       visit(url);
    }
}

Upvotes: 4

MrYoshiji
MrYoshiji

Reputation: 54882

From the documentation: https://github.com/rails/turbolinks#triggering-a-turbolinks-visit-manually

You can use Turbolinks.visit(path) to go to a URL through Turbolinks.

You can also use redirect_to path, turbolinks: true (or turbolinks: :advance) in Rails to perform a redirect via Turbolinks.


This should work:

Turbolinks.visit('http://google.com')

Upvotes: 29

mikdiet
mikdiet

Reputation: 10018

Yes.

As written here

You can use Turbolinks.visit(path) to go to a URL through Turbolinks.

Upvotes: 3

Related Questions