Skip to main content
Nintex Community Menu Bar
Question

mobile page loads blank, no console errors

  • July 11, 2024
  • 28 replies
  • 73 views

Forum|alt.badge.img+18

Upgraded to 10.0.15.

Page built on the old mobile builder now loads completely blank, with no error messages in the console.

Any ideas?

28 replies

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

All other mobile pages seem to be working correctly.
What might cause a silent failure like that?


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

BUMP!


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

BUMP!!


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

BUMP!!!

I have some inline javascript with a pageload function  on this page, and the pageload function never runs.


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Looks like the page ends up in an infinite loop as this part of the VFRemove.js:

function c() {
            var a = !1, c = [], d, e, l, k = !g || 0 < h;
            if (!m) {
                m = !0;
                for (a = 0; a < q.length; ++a)
                    if ((e = q[a]) &amp;&amp; (d = n.getElementById(e.id)))
                        !e.checkReady || g || d.nextSibling || n &amp;&amp; n.body ? (d = (l = e.override) ? !0 === l ? e.obj : l : d,
                        e.fn.call(d, e.obj),
                        q.remove(e),
                        --a) : c.push(e);
                h = 0 === c.length ? 0 : h - 1;
                k ? b() : (clearInterval(f),
                f = null);
                a = !(m = !1)
            }
            return a
        }
        function b() {
            f || (f = setInterval(function() {
                c()
            }, p))
        } 

It occasionally jumps out to the bold timeout portion of this function from onloadwff.js:

function evalScriptsInFrame(e, t, n, i) {
        if (!e)
            return !1;
        if (t || (t = LP_derive_doc()),
        !t)
            return !1;
        i || (i = {});
        var r = !1
          , o = !1
          , a = !1
          , l = !1
          , s = !1;
        void 0 !== i.skipfill &amp;&amp; (r = i.skipfill),
        void 0 !== i.skipicons &amp;&amp; (o = i.skipicons),
        void 0 !== i.skipformhook &amp;&amp; (a = i.skipformhook),
        void 0 !== i.is_launch &amp;&amp; (l = i.is_launch),
        void 0 !== i.skiplazydelay &amp;&amp; (s = i.skiplazydelay),
        void 0 !== i.cycles &amp;&amp; i.cycles++,
        LPVARS.g_pending_eval = !1,
        debug_checkpoint("entered evalScriptsInFrame cleared pending state");
        var c = LP_get_last_url_history(t);
        c || (LP_put_last_url_history(t),
        c = LP_get_last_url_history(t));
        var u = c.href
          , d = c.href_hash
          , p = get_doc_location_href(t);
        void 0 !== i.cycles &amp;&amp; i.cycles > 10 &amp;&amp; (verbose_log("Abort."),
        i.href_hash = d,
        i.href = u),
        void 0 === i.href || p === u &amp;&amp; i.href_hash === d || (formcachereset(t),
        fieldcachereset(t),
        LPVARS.g_launch_eval_timestamp = 0,
        i.skiplazydelay = !1,
        s = !1,
        LP_put_last_url_history(t),
        c = LP_get_last_url_history(t),
        i.href = c.href,
        i.href_hash = c.href_hash,
        i.cycles = 1);
        try {
            for (var f = 0; t.frames &amp;&amp; f < t.frames.length; f++)
                evalScriptsInFrame(t.frames[f], t.frames[f].document, n, i)
        } catch (e) {}
        var _ = punycode.URLToASCII(get_doc_location_href(t))
          , g = t.readyState;
        if (!t.g_content_check_result || is_page_JSON(t))
            return t.g_content_check_result = !1,
            !1;
        if ("complete" == g &amp;&amp; LP_page_is_lazyloader(t, l) &amp;&amp; !s) {
            var m = 2500;
            l &amp;&amp; (m = 5e3),
            LPVARS.g_launch_eval_timestamp ? (LPVARS.g_launch_eval_timestamp + m < LP_gettime() &amp;&amp; (i.skiplazydelay = !0,
            LPVARS.g_launch_eval_timestamp = null,
            verbose_log("EVAL LAZY LOAD TIMED OUT, END WAIT")),
            function(e, t) {
                if (t) {
                    if (countInputs(e) >= 2)
                        return !0
                } else if (countInputs(e) >= 1)
                    return !0;
                return !1
            }(t, l) &amp;&amp; (verbose_log("EVAL LAZY LOAD FOUND INPUTS, END WAIT"),
            i.skiplazydelay = !0,
            LPVARS.g_launch_eval_timestamp = null)) : LPVARS.g_launch_eval_timestamp = LP_gettime(),
            verbose_log("EVAL LAZY LOAD, SKIP 1 cycle")
        }
        if (!n &amp;&amp; "loaded" != g &amp;&amp; "complete" != g) {
            var c = LP_get_last_url_history(t);
            return c || (LP_put_last_url_history(t),
            c = LP_get_last_url_history(t)),
            i.href = c.href,
            i.href_hash = c.href_hash,
            LPVARS.g_pending_eval || (LPVARS.g_pending_eval = !0,
            <b>setTimeout(function() {
</b><b>                evalScriptsInFrame(e, t, 0, i)
</b><b>            }, 100)),
</b>            !0
        }
        var A = !0;
        if (t.body &amp;&amp; void 0 !== t.body._lpcrdone &amp;&amp; (t.forms.length != t.body._lpcrdone.formslength || t.location.href != t.body._lpcrdone.doclocationhref || (A = !1)),
        t.body &amp;&amp; A)
            a || (t.body._lpcrdone = {
                formslength: t.forms.length,
                doclocationhref: get_doc_location_href(t)
            },
            hookAllFormSubmits(t));
        else if (!n)
            return !1;
        mpw_monitor_init(),
        reset_forcefill_without_fillbest();
        for (var h = t.getElementsByTagName("input"), v = 0, f = 0; f < h.length; f++)
            "password" == h[f].type &amp;&amp; (v++,
            LPVARS.g_lp_page || "lastpass" !== build_id || h[f].addEventListener("keyup", mpw_monitor, !1));
        if (LPVARS.g_combat_obfuscation &amp;&amp; !LPVARS.g_isfirefoxsdk &amp;&amp; track_masked_fields(t),
        n = n ? 1 : 0,
        !too_soon_after_launch() &amp;&amp; !r) {
            var _ = punycode.URLToASCII(get_doc_location_href(t));
            sendBG({
                cmd: "fill",
                url: _,
                docid: LPVARS.g_fillreqdocs.length,
                force: n,
                numpass: v,
                docstate: get_docstate(t),
                docflags: assemble_docflags_object(t),
                username_val: get_username_val(t, lp_gettld_url(_)),
                source: "autofill"
            })
        }
        return o || setupIcons(t, LPVARS.g_is_specialsite),
        LPVARS.g_fillreqdocs[LPVARS.g_fillreqdocs.length] = t,
        "complete" != g &amp;&amp; (r || window.addEventListener("load", function() {
            sendBG({
                cmd: "fill",
                url: punycode.URLToASCII(get_doc_location_href(t)),
                docid: LPVARS.g_fillreqdocs.length - 1,
                force: n,
                numpass: v
            })
        }, !1)),
        !0
    } 

Any thoughts on what might be causing this?


Forum|alt.badge.img+10

Do you see the same as what is happening here? https://community.skuid.com/t/half-my-mobile-pages-are-disapearing


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Thanks, Stephen.
The entire page is blank. We are not using the Feedback feature.


Forum|alt.badge.img+7
  • July 11, 2024

Having the same issue - work around is to put the Skuid Page in a Vforce page and use a visualforce component.


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Mansour, what does your VF page markup look like? I’m not getting the workaround to work.


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

The redirect approach doesn’t work, for obvious reasons, and using a VF page like the one below still results in the same blank page.

<apex:page readonly="true"
 showheader="false"
 sidebar="false"
 doctype="html-5&#46;0"
 title="SchedulingMobile">
 <skuid:page page="SchedulingMobile"/> 
</apex:page>

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

BUMP!


Forum|alt.badge.img+7
  • July 11, 2024

Created a lightning component that iframed the skuid page.
Below is the code for the component:

<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction" access="global" > <iframe src="{!'ENTER_SKUID_PAGE_URL'}" width="100%" height="2000px" frameBorder="0"/> </aura:component>


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Ah, we’re not in lightning, so that’s not an option for us. Thanks, Mansour.


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Skuid, any chance you can weigh in on this issue?


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Removing all custom javascript and css resources from the page does not change the result. Still loading a blank screen. The problem is not any of our custom code.

This page was working perfectly in 8.15, but will not load in 10.0.16.


Forum|alt.badge.img+10

Can you post the XML for us to look at?


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Gladly. Looks like it’s too much for one post.

Models:

FORMAT_TIME("h:mm a",{{Start__c}}) row.updated Duration__c Start__c row.updated First_Name__c Last_Name__c Middle_Name__c

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Components:

<components>
        <skuidmobile>
            <mobilepanels>
                <mobilepanel minwidth="200" uniqueid="Main">
                    <components>
                        <mobilegrid precision="3" minwidth="50">
                            <divisions>
                                <division size="25%" type="specified">
                                    <components>
                                        <mobilebutton label="" style="nav" icon="fa-rotate-left">
                                            <actions>
                                                <action type="createRow" model="FeedbackSignature" appendorprepend="prepend" defaultmodefornewitems="edit"/>
                                                <action type="setPopupPanel" panel="Feedback" title="Feedback"/>
                                            </actions>
                                            <renderconditions logictype="and"/>
                                            <enableconditions logictype="and" message="No recent scheduling interaction exists for feedback.">
                                                <condition type="fieldvalue" enclosevalueinquotes="true" fieldmodel="Feedback" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasRows"/>
                                            </enableconditions>
                                        </mobilebutton>
                                        <mobilebutton label="" style="nav" icon="fa-arrow-left">
                                            <actions>
                                                <action type="custom" model="ApptInteractions" condition="Date" snippet="previousDay">
                                                    <onerroractions>
                                                        <action type="blockUI" message="There was an error" timeout="3000"/>
                                                    </onerroractions>
                                                </action>
                                            </actions>
                                            <renderconditions logictype="and"/>
                                            <enableconditions logictype="and"/>
                                        </mobilebutton>
                                    </components>
                                    <renderconditions logictype="and"/>
                                    <interactions/>
                                </division>
                                <division size="50%" type="specified">
                                    <components>
                                        <mobilegrid uniqueid="sk-194zVU-157" precision="2" minwidth="50">
                                            <divisions>
                                                <division size="1" type="flex">
                                                    <components>
                                                        <mobilebutton label="" style="nav" uniqueid="sk-2oZHGj-682" icon="fa-calendar-o">
                                                            <actions>
                                                                <action type="redirect" window="self" url="/apex/skuid__ui?page=MiniDayCalendar"/>
                                                            </actions>
                                                            <renderconditions logictype="and"/>
                                                            <enableconditions logictype="and"/>
                                                        </mobilebutton>
                                                    </components>
                                                    <renderconditions logictype="and"/>
                                                </division>
                                                <division size="1" type="flex">
                                                    <components>
                                                        <mobilebutton label="" style="nav" uniqueid="sk-2oZtqJ-709" icon="fa-user-md">
                                                            <actions>
                                                                <action type="requeryModel" model="NurseSchedule" behavior="standard"/>
                                                                <action type="setPopupPanel" panel="NurseSchedule" title="Nurse Schedule"/>
                                                            </actions>
                                                            <renderconditions logictype="and"/>
                                                            <enableconditions logictype="and"/>
                                                        </mobilebutton>
                                                    </components>
                                                    <renderconditions logictype="and">
                                                        <rendercondition type="fieldvalue" operator="!=" enclosevalueinquotes="true" fieldmodel="Defaults" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="Account_System__c" value="Role"/>
                                                    </renderconditions>
                                                </division>
                                            </divisions>
                                        </mobilegrid>
                                        <mobiledeck showsavecancel="false" searchmethod="server" searchbox="false" tokenizesearch="false" createrecords="false" precision="1" minwidth="400" model="Date" mode="read" emptysearchbehavior="query" cssclass="" uniqueid="DateTemplate">
                                            <components>
                                                <mobilefield id="Start__c" valuehalign="" snippet="renderFilterDate" showhelp="false" cssclass="datepicker" type="CUSTOM" minuteincrement="5">
                                                    <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                    <label>&amp;lt;strong&amp;gt;{{$Model.Open.conditions.0.value}}&amp;lt;/strong&amp;gt;</label>
                                                    <enableconditions logictype="and"/>
                                                </mobilefield>
                                            </components>
                                            <searchfields/>
                                            <aftersaveactions/>
                                            <renderconditions logictype="and"/>
                                            <conditions/>
                                        </mobiledeck>
                                    </components>
                                    <renderconditions logictype="and"/>
                                    <interactions>
                                        <interaction type="tap">
                                            <actions>
                                                <action type="save"/>
                                            </actions>
                                        </interaction>
                                    </interactions>
                                </division>
                                <division size="25%" type="specified">
                                    <components>
                                        <mobilebutton label="" style="nav" icon="fa-plus-square">
                                            <actions>
                                                <action type="updateRow" fieldmodel="Leadlog" field="Appointment_Scheduled__c" enclosevalueinquotes="false" value="false"/>
                                                <action type="updateRow" fieldmodel="Leadlog" field="Lead_Purpose__c" enclosevalueinquotes="true" value="Schedule"/>
                                                <action type="setPopupPanel" panel="UnscheduledLeadPopup" title="Add Unscheduled Lead"/>
                                            </actions>
                                            <renderconditions logictype="and"/>
                                            <enableconditions logictype="and"/>
                                        </mobilebutton>
                                        <mobilebutton label="" style="nav" icon="fa-arrow-right">
                                            <actions>
                                                <action type="custom" snippet="nextDay">
                                                    <onerroractions>
                                                        <action type="blockUI" message="There was an error" timeout="3000"/>
                                                    </onerroractions>
                                                </action>
                                            </actions>
                                            <renderconditions logictype="and"/>
                                            <enableconditions logictype="and"/>
                                        </mobilebutton>
                                    </components>
                                    <renderconditions logictype="and"/>
                                </division>
                            </divisions>
                        </mobilegrid>
                        <mobiledeck showsavecancel="true" searchmethod="server" searchbox="false" tokenizesearch="true" createrecords="true" precision="1" minwidth="400" model="Open" mode="read" emptysearchbehavior="query" cssclass="open">
                            <components>
                                <mobilegrid precision="4" minwidth="50">
                                    <divisions>
                                        <division size="1" type="flex">
                                            <components>
                                                <mobilebutton label="" style="nav" icon="sk-icon-add">
                                                    <actions>
                                                        <action type="emptyModelData">
                                                            <models>
                                                                <model>Opening</model>
                                                            </models>
                                                        </action>
                                                        <action type="setCondition" model="Opening" condition="ThisOne" value="{{Id}}"/>
                                                        <action type="requeryModel" model="Opening" behavior="standard"/>
                                                        <action type="setMainPanel" panel="NewAppointment"/>
                                                    </actions>
                                                    <renderconditions logictype="or">
                                                        <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="Open" sourcetype="fieldvalue" field="Status__c" value="Open"/>
                                                        <rendercondition type="blank" operator="=" fieldmodel="Open" sourcetype="fieldvalue" field="Status__c" value="null" enclosevalueinquotes="false"/>
                                                    </renderconditions>
                                                    <enableconditions logictype="and"/>
                                                </mobilebutton>
                                                <mobilebutton label="" style="nav" uniqueid="sk-7q6XT-702" icon="sk-icon-edit">
                                                    <actions>
                                                        <action type="emptyModelData">
                                                            <models>
                                                                <model>Opening</model>
                                                            </models>
                                                        </action>
                                                        <action type="setCondition" model="Opening" condition="ThisOne" value="{{Id}}"/>
                                                        <action type="requeryModel" model="Opening" behavior="standard"/>
                                                        <action type="setMainPanel" panel="NewAppointment"/>
                                                    </actions>
                                                    <renderconditions logictype="and">
                                                        <rendercondition type="fieldvalue" operator="!=" enclosevalueinquotes="true" fieldmodel="Open" sourcetype="fieldvalue" field="Status__c" value="Open"/>
                                                        <rendercondition type="blank" operator="!=" fieldmodel="Open" sourcetype="fieldvalue" field="Status__c" value="null" enclosevalueinquotes="false"/>
                                                    </renderconditions>
                                                    <enableconditions logictype="and"/>
                              &

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

Resources (although I removed all these to no effect):

<resources>
    <labels/>
    <javascript>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="jquery.inputmask.bundle.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="OptimizeJS_General.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="OptimizeJS_SchedulingSync.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="OptimizeJS_AppointmentDateTime.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="OptimizeJS_CustomPicklists.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        <jsitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="OptimizeJS_CustomSchedulingForm.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
    </javascript>
    <css>
        <cssitem location="staticresource" name="OptimizeJavascript" cachelocation="false" url="" namespace="" filepath="mobileCSS.css"/>
    </css>
</resources>

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

All of that is wrapped in

<skuidpage unsavedchangeswarning="">
</skuidpage>

Forum|alt.badge.img+18
  • Author
  • July 11, 2024

BUMP!!!


Forum|alt.badge.img+18
  • Author
  • July 11, 2024

751e2b078d13899b434e1560917ca7bfcd372ff2.png


Forum|alt.badge.img+10

I don’t think this is complete XML for the components. It looks like it didn’t finish the ending part


Forum|alt.badge.img+10

Due to the technical limitations of the lengthy XML, I appreciate you sending it to me via email. We’ll review it together next week as we discussed.


Forum|alt.badge.img+10

We’ve found that if a page’s XML is pasted into a new page without first checking the mobile box (which disappears after you select to paste XML) then the page will load blank. The XML needs to be brought over as mobile.

That isn’t the issue here, but it might be for someone else coming to this community post.