Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9155545
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T12:36:59+00:00 2026-06-17T12:36:59+00:00

Is it safe to assume that the last script element* in the document when

  • 0

Is it safe to assume that the last script element* in the document when the script runs** is the currently running script?

For example, I want to create a script that can be dropped anywhere in the body of of a page and display an element in the same place. I’m doing something like this:

function getCurrentScriptElement() {
    var scripts = document.getElementsByTagName('script');
    return scripts[scripts.length - 1];
}

var script = getCurrentScriptElement();
var view = document.createElement('span');

/* Put stuff in our view... */

script.parentNode.insertBefore(view, script);

Assuming the script is in the body of the document, is this “safe?” Will the getCurrentScriptElement function always return the running script? If not, how can it be done?

I’d like to do this without tying the script to a specific id attribute or similar, I’d like it to just be positional.


I created an example here that pulls in this script. One answer suggested that other scripts could create a condition where an example like this would break. Is it possible to add other scripts to this example that will break it?


It was suggested that other scripts with defer or async attributes could break this. Can anyone give an example of how such a script might work?

As I understand it, defer means load the DOM first, and then run the script with the defer tag. How would the defer attribute appearing on another script element affect the behavior of getCurrentScriptElement?

async, as I understand it, means start fetching that script and keep parsing the DOM at the same time, don’t wait… but when it hits my script it should still stop and wait, right?

I don’t see how either one could affect it, can anyone provide an example?


* I’m only interested in external scripts for the purpose of this question.

** Not the last script element in the entire document, but the last script element in the document at the time when it runs. The rest of the document shouldn’t be loaded yet, right?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T12:36:59+00:00Added an answer on June 17, 2026 at 12:36 pm

    It’s not an absolute guarantee no. Check out this JSFiddle: http://jsfiddle.net/jAsek/

    <!DOCTYPE html>
    <title>Test case</title>
    <div>
        <p>At the start</p>
        <script id="first">
            var scr1 = document.createElement("script");
            scr1.setAttribute("id", "early");
            document.body.appendChild(scr1);
        </script>
        <p>After the first script</p>
        <script id="second">
            function getCurrentScriptElement() {
                var scripts = document.getElementsByTagName('script');
                return scripts[scripts.length - 1];
            }
    
            alert(getCurrentScriptElement().id);
        </script>
        <p>At the end</p>
    </div>
    

    Here the alert reports the id of the injected script “early”, not the id of currently running script “second”.

    There’s no practical difference between internal and external scripts.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is it safe to assume that $_SERVER['REMOTE_ADDR'] always returns a IPv4 address ? Thanks!
Is it safe to assume that java.util.concurrent.CompletionService.take().isDone() will always return true? If so, why
std::map<int,int> mapy; ++mapy[5]; Is it safe to assume that mapy[5] will always be 1?
Is it safe to assume that when a user requests an .aspx page via
It is safe to assume that working with or passing around an immutable object
Is it safe to assume that WPF TwoWay data binding Wont work on controls
Is it safe to assume that the loopback network adapter on a Linux system
Is it safe to assume that: because scala.AnyRef defines toString() and hashCode() with a
In designing a new programming language, is it safe to assume that a C
In Java, is it safe to assume that getClass() called inside a constructor of

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.