The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Hi! I'm working on a LTI 1.3 tool implementation (and have already got it working on the tool side with the reference implementation). I am having some trouble with Canvas however: my LTI 1.3 implementation does not support loading from within an iframe because the browser is (probably rightfully) eating my CSRF/state cookies if loaded in such a context, causing the initiation to fail. I know I can mess with the cookie properties so the browser will stop eating them, but I am not interested in evaluating the security implications of doing so at this time.
As such I'd much rather simply have Canvas open my tool in a new tab.
There have been questions on this forum about this before: https://community.canvaslms.com/t5/Question-Forum/What-are-LTI-settings-to-open-in-new-tab/m-p/23103... and https://community.canvaslms.com/t5/Developers-Group/How-to-configure-XML-for-LTI-to-open-in-new-tab/..., however both of those are using XML, implying they are for previous versions of LTI. I don't see anything in the JSON setup file documentation regarding how to do this, and I haven't seen anything in the UI (though I have not explored all the corners of it).
Reading the Canvas source code, it looks like there's something in app/views/lti/_lti_message.html.erb about this, and some kind of new_tab attribute that may or may not exist for LTI links? I am not a Ruby expert, and don't know how to trace it any further in the source code.
Anyone know how to do this?
Solved! Go to Solution.
Hi @jade_ ,
I think this is documented under 'Naviagtion tools' > 'placements'. For as far as I can tell it only seems possible if you use the Account or Course placement. I believe you can do this by adding the windowTarget: _blank parameter in your JSON. I`m not an expert on this though.
{ "title":"Cool Course Navigation Tool ", "scopes":[], "extensions":[ { "domain":"coursenavexample.com", "tool_id":"course-nav", "platform":"canvas.instructure.com", "settings":{ "text":"Cool Course Navigation Tool Text", "icon_url":"https://some.icon.url", "placements":[ { "text":"Cool App Dashboard", "enabled":true, "icon_url":"https://some.icon.url", "placement":"course_navigation", "message_type":"LtiResourceLinkRequest", "target_link_uri":"https://your.target_link_uri/your_dashboard",
"windowTarget": "_blank" } ] } } ],
Hi @jade_ ,
I think this is documented under 'Naviagtion tools' > 'placements'. For as far as I can tell it only seems possible if you use the Account or Course placement. I believe you can do this by adding the windowTarget: _blank parameter in your JSON. I`m not an expert on this though.
{ "title":"Cool Course Navigation Tool ", "scopes":[], "extensions":[ { "domain":"coursenavexample.com", "tool_id":"course-nav", "platform":"canvas.instructure.com", "settings":{ "text":"Cool Course Navigation Tool Text", "icon_url":"https://some.icon.url", "placements":[ { "text":"Cool App Dashboard", "enabled":true, "icon_url":"https://some.icon.url", "placement":"course_navigation", "message_type":"LtiResourceLinkRequest", "target_link_uri":"https://your.target_link_uri/your_dashboard",
"windowTarget": "_blank" } ] } } ],
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.