I'm just trying to prove the concept of displaying a modal dialog in my SharePoint-hosted app page. I believe I've included the required js libraries and I give it more than enough time to load the libraries before I execute my function. The error I receive is:
Cannot read property 'hiddenButtonValueBeforeDialog' of undefined
I believe I have the libraries I need::
<script type="text/javascript" src="/_layouts/15/init.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script type="text/javascript" src="/_layouts/15/SP.UserProfiles.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.core.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.ui.dialog.js"></script>
Javascript:
function showDialog() {
var optDict = {
width: 800,
height: 500,
url: 'http://www.google.com',
title: "Upload your file"
};
try {
SP.UI.ModalDialog.showModalDialog(optDict);
}
catch (err) {
alert(err.message);
}
return false;
}
The error Cannot read property 'hiddenButtonValueBeforeDialog' of undefined occurs since the sp.ui.dialog.js is globalized JavaScript library and the required resource file SP.Res.resx has not been loaded on the client side (SP.Res.hiddenButtonValueBeforeDialog is generated from this file).
Solution
ScriptResx HTTP Handler is used to load the content of resource
files on the client side, the following line has to added:
<script type="text/javascript" src="/_layouts/15/ScriptResx.ashx?name=sp.res&culture=en-us"></script>
In addition, since there is a dependency for SP.UI.UIUtility
namespace in sp.ui.dialog.js library, the sp.init.js JavaScript
library has to be referenced:
<script type="text/javascript" src="/_layouts/15/sp.init.js"></script>
I added all these references in PlaceHolderMain
<script src="/_layouts/15/1033/init.js" type="text/javascript"></script>
<script src="/_layouts/15/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/_layouts/15/ie55up.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.core.js" type="text/javascript"></script>
<script type="text/javascript" src="/_layouts/15/ScriptResx.ashx?name=sp.res&culture=en-us"></script>
<script type="text/javascript" src="/_layouts/15/sp.init.js"></script>
<script src="/_layouts/15/sp.ui.dialog.js" type="text/javascript"></script>
<script src="/_layouts/15/core.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.runtime.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.js" type="text/javascript"></script>
<script src="/_layouts/15/inplview.js" type="text/javascript"></script>
<script src="/_layouts/15/cui.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.ribbon.js" type="text/javascript"></script>
<script src="/_layouts/15/mdn.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.ui.pub.ribbon.js" type="text/javascript"></script>
<script src="/_layouts/15/msstring.js" type="text/javascript"></script>
<script src="/_layouts/15/socialdata.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.ui.socialribbon.js" type="text/javascript"></script>
<script src="/_layouts/15/cui.js" type="text/javascript"></script>
<script src="/_layouts/15/wpadder.js" type="text/javascript"></script>
<script src="/_layouts/15/search.js" type="text/javascript"></script>
Now all javascript errors are gone
Related
An application is migrated and now there is an issue when een page is opened and in the console I see the error: "Uncaught ReferenceError: RichFaces is not defined"
It's a Java application on a Weblogic server.
JSF is old, but the application is new to me, I haven't build the application.
This is a part of the code:
<?xml version="1.0" encoding="UTF-8"?>
<f:view
contentType="text/html"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:win="http://winter.ba.uwv.nl/winter"
>
<html>
<h:head>
...
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<h:outputScript name="/javascript/jquery.timers.js" target="head" />
<h:outputScript name="/javascript/preloadCssImages.jQuery_v5.js" target="head" />
<h:outputScript name="/javascript/tooltip.js" target="head" />
<rich:jQuery />
<ui:remove><!-- Disable the a4j:loadStyle tags and enable the link tag to use plain setup --> </ui:remove>
<ui:insert name="head"/>
<h:outputScript target="head">
jQuery(document).ready(function() {
jQuery.preloadCssImages();
...
});
</h:outputScript>
</h:head>
<h:body>
...
The line <rich:jQuery /> is resulting in:
<span id="j_idt7" style="display: none;">
<script type="text/javascript">RichFaces.ui.jQueryComponent.query();</script>
</span>
And the line RichFaces.ui.jQueryComponent.query(); is resulting in the error:
Uncaught ReferenceError: RichFaces is not defined
at home.xhtml:13:152
(anonymous) # home.xhtml:13
I don't understand why a <span...> tag is added in the head?
It seems to me, but I'm not sure an artifact is missing. I have tried to add the following artifacts to my pom.xml file:
richfaces
richfaces-components-ui
richfaces-ui
richfaces-components-ui
richfaces-ui-core-ui
Has someone an idea how to solve "Uncaught ReferenceError: RichFaces is not defined" error?
---- UPDATE (after the Answer of Makhiel) ----
If we do not add the line rich:JQuery and the page is opnening than an jquery spinner is started, which never ends. It 'hangs' with this error:
Uncaught TypeError: jQuery.preloadCssImages is not a function
at HTMLDocument. (userList.xhtml:17:28)
at l (jquery-1.8.3.min.js:2:16996)
at Object.fireWith [as resolveWith] (jquery-1.8.3.min.js:2:17783)
at Function.ready (jquery-1.8.3.min.js:2:12504)
at HTMLDocument.A (jquery-1.8.3.min.js:2:9909)
This is the output in the browser and at line 13 there is the line which is mentioned by #Makhiel. Right after that line, is the line which gives the error: RichFaces.ui.jQueryComponent.query();.
<html>
<head id="j_idt2">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script>
/* Fix image caching problem */
try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {}
</script>
<title>Winter</title>
<link rel="icon" href="/winter/favicon.ico" type="image/x-icon" />
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<!-- This is the line of Makhiel mentioned, so it exists -->
<script type="text/javascript" src="/org.richfaces.resources/javax.faces.resource/org.richfaces.staticResource/4.5.17.Final/PackedCompressed/packed/packed.js"></script>
<span id="j_idt9" style="display: none;">
<script type="text/javascript">RichFaces.ui.jQueryComponent.query();</script>
</span>
...
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/jquery.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces-base-component.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/jquery.component.js">
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery.preloadCssImages();
//perhaps add delay
...
});
</script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces-queue.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/status.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/toolbar.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces-event.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/togglePanel.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/togglePanelItem.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/collapsiblePanel.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/collapsiblePanelItem.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/message.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/jquery.position.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces-utils.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/richfaces-selection.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/AutocompleteBase.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/Autocomplete.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/popupPanel.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/popupPanelBorders.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/popupPanelSizer.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/component-control.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/popup.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/menuKeyNavigation.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/menu-base.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/menu.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/menugroup.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/menuitem.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/contextmenu.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/tooltip.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/datatable.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/jquery.mousewheel.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/extendedDataTable.js"></script>
<script type="text/javascript" src="/winter/org.richfaces.resources/javax.faces.resource/org.richfaces/datascroller.js"></script>
...
</head>
<body>
...
rich:jQuery without any attributes doesn't do anything, so you might as well delete it.
You shouldn't need to add anything in your POM, if JSF didn't know what the richfaces tag was it wouldn't be translating it.
Your generated <head> should contain RichFaces JS sources, something like:
<script type="text/javascript" src="/org.richfaces.resources/javax.faces.resource/org.richfaces.staticResource/4.5.17.Final/PackedCompressed/packed/packed.js"></script>
This is where the RichFaces object is defined, if it's not on your page (and it sounds like it isn't) you might have a filter in place that blocks it.
I have developed single page application using Angular 2, node , express. It is running fine on chrome and firefox. but same is now working on IE 11. Used following code
Giving error to System in script tag. SCRIPT5009: 'System' is undefined
<html class="ng-scope">
<head>
<base href="/"/>
<title>Test application</title>
<!-- 1. Load libraries -->
<script src="libs/angular2/bundles/angular2-polyfills.js"></script>
<script src="libs/systemjs/dist/system.src.js"></script>
<script src="libs/rxjs/bundles/Rx.js"></script>
<script src="libs/angular2/bundles/angular2.dev.js"></script>
<script src="libs/angular2/bundles/router.dev.js"></script>
<script src="libs/angular2/bundles/http.dev.js"></script>
<link href="font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/bootstrap')
.then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
<!-- End wrapper-->
<script src="js/jquery/jquery-2.1.1.min.js"></script>
<script src="js/plugins/jquery-ui/jquery-ui.js"></script>
<script src="js/bootstrap/bootstrap.min.js"></script>
<script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
<script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
<script src="js/plugins/pace/pace.min.js"></script>
</body>
</html>
thanks in advance.
Finally I got the solution using following link.
I have added two javascript reference es6-shim.min.js and shims_for_IE.js
<script src="libs/es6-shim/es6-shim.min.js"></script>
<script src="libs/systemjs/dist/system-polyfills.js"></script>
<script src="libs/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
https://github.com/angular/angular/issues/7144
Note : In this reference libs = node_modules
Try adding
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.35.1/es6-shim.js"></script>
as first script library
1) My index page with ejs:
<%include ../includes/layout.ejs %>
<h1>This is the index page, did layout come along?</h1>
2) My layout pages with ejs:
<!DOCTYPE html> <html>
<head>
<title>MultiVision</title>
<% include ../includes/styles.ejs %>
<script type="text/javascript" rc="/vendor/jquery/dist/jquery.min.js"></script>
</head>
<body>
<%include ../includes/scripts.ejs%>
</body>
</html>
3) My scripts page with ejs:
<script src="/vendor/bootstrap/dist/js/bootstrap.js" type="text/javascript"></script>
<script src="/vendor/toastr/toastr.js" type="text/javascript"></script>
<script src="/vendor/angular/angular.js"type="text/javascript"></script>
<script src="/vendor/angular-resource/angular-resource.js" type="text/javascript"></script>
<script src="/vendor/angular-route/angular-route.js" type="text/javascript"></script>
<script src="/app/app.js" type="text/javascript"></script>
However, I consistently receive this error for each of the script tags:
Uncaught SyntaxError: Unexpected token < ######.js
Changing them to a cdn location works though, but that is not what I want.
I guess it would help if I had included this in my server.js: ;)
....
, path = require('path'),
.....
app.use(express.static(path.join(__dirname, 'public')));
I am getting the above mentioned error. Below is my code snippet.
<link rel="stylesheet" href="/css/autoComplete/jquery-ui.css" />
<link rel="stylesheet" href="/css/core.css">
<link rel="stylesheet" href="css/theme.css">
<link rel="stylesheet" href="/css/datepicker.css">
<link rel="stylesheet" href="/css/customlook.css">
<link rel='stylesheet' href='/css/Header.css' />
<link rel='stylesheet' href='/css/Test.css' />
<script type="text/javascript" src="/js/autoComplete/jquery.min.js"></script>
<script type="text/javascript" src="/js/autoComplete/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/advanced_search_filters.js"></script>
<script type="text/javascript" src="/js/dateJs/jquery.js"></script>
<script type="text/javascript" src="/js/dateJs/core.js"></script>
<script type="text/javascript" src="/js/dateJs/datepicker.js"></script>
<script type="text/javascript" src="/js/user.js"></script>
<script type="text/javascript" src="/js/utils.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert('testing');
$("#CARD_HOLDER_NAME").autocomplete({
source : '${pageContext. request. contextPath}/cardHolderName'
});
});
</script>
Please help me to resolve it.
You're missing/wrongly placed jQuery/ jQuery UI.js/ autocomplete.js files and the order should be
(1) jQuery.js
(2) jQuery UI.js
(3) autocomplete.js
Add the following before autocomplete
<script src="http://code.jquery.com/jquery-1.9.1.js />
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" />
I am using drupal6
<script type="text/javascript" src="http://temp.lmfast1/Travancore/sites/all/themes/artsy/js/jquery.lavalamp-1.3.5.min.js">
</script>
<script type="text/javascript" src="http://temp.lmfast1/Travancore/sites/all/themes/artsy/js/jquery.easing.1.3.js">
</script>
<script type="text/javascript" src="http://temp.lmfast1/Travancore/sites/all/themes/artsy/js/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(document).pngFix();
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$(".lavaLampmenu").lavaLamp({ fx: "backout", speed: 1200 });
});
</script>
I included the above code in page.tpl.php
put jquery.lavalamp-1.3.5.min.js,jquery.easing.1.3.js andjquery-1.6.1.min.js
but jquery doesn't works.nothing happens on hover of menu links
change
curr = $("li.current", this)[0] || $($li[o.linum]).addClass("current")[0];
to
curr = $("li.active", this)[0] || $($li[o.linum]).addClass("active")[0];