Question

I have a jQuery code - want to display a modal window after the address will be suitable ID:

<script type="text/javascript"> 
    $(document).ready(function(){
        var split = location.search.replace('?', '').split('=');
        var i = split[1];

        if(i){

            $('#myModal').modal('show'); 
        }
        else
        {
            document.location.href="/";
        }
    });
</script>

HTML code: Below is an element that wants to see, is in the file index.php

    <div class="modal fade" id="myModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
                <h4 class="modal-title">Title</h4>
            </div>

            <div class="modal-body">
                <h3>Overflowing text to show scroll behavior</h3>

                <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.<br />

                Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.<br />

                Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
            </div>

            <div class="modal-footer">
                <a href="#" id="clk" class="btn" data-dismiss="modal">Cancel</a>
                <a href="#" class="btn btn-primary">OK</a>
            </div>
        </div>
    </div>
</div>
Était-ce utile?

La solution

Don't use split() method, use match() instead.

$(document).ready(function() {
    var arr = location.search.match(/[?&]id=(\d+)/i);
    if (arr && arr[1] > 0) {
        $('#myModal').modal('show');
    }
    else
    {
        location.href="/";
    }
});

Autres conseils

From the classes you use in your code, I assume you use Bootstrap (and most likely Bootstrap3). In that case, you might want to try this:

JS:

<script type="text/javascript"> 
    $(document).ready(function(){
        var someVar = location.search.replace('?', '').split('='); //modified
        var i = someVar[1]; //modified
        //don't use "split" as variable name because this is a jquery function and might cause problems

        if(i){

            $('#myModal').modal({show: true}); //modified
        }
        else
        {
            document.location.href="/";
        }
    });
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top